IDE, Fields Editor corrections and improvements, from Marcelo B Paula, issue #17762

git-svn-id: trunk@27965 -
This commit is contained in:
jesus 2010-10-30 02:28:54 +00:00
parent 9cabb64548
commit 3bae98a73f
3 changed files with 340 additions and 39 deletions

View File

@ -1,31 +1,100 @@
object DSFieldsEditorFrm: TDSFieldsEditorFrm
Left = 472
Height = 288
Height = 334
Top = 230
Width = 215
Width = 257
HorzScrollBar.Page = 214
VertScrollBar.Page = 287
Caption = 'Fields Editor'
ClientHeight = 288
ClientWidth = 215
ClientHeight = 334
ClientWidth = 257
OnClose = FieldsEditorFrmClose
OnDestroy = FieldsEditorFrmDestroy
LCLVersion = '0.9.29'
object FieldsListBox: TListBox
Left = 0
Height = 288
Top = 0
Width = 215
Height = 302
Top = 32
Width = 257
Align = alClient
ItemHeight = 0
MultiSelect = True
OnClick = ListBox1Click
OnDrawItem = FieldsListBoxDrawItem
OnKeyDown = FieldsListBoxKeyDown
PopupMenu = PopupMenu1
Style = lbOwnerDrawVariable
TabOrder = 0
end
object tbCommands: TToolBar
Left = 0
Top = 0
Width = 257
AutoSize = True
ButtonHeight = 30
ButtonWidth = 34
ParentShowHint = False
ShowHint = True
TabOrder = 1
object tbAddFld: TToolButton
Left = 1
Top = 2
Action = AddFieldsActn
end
object tbDeleteFld: TToolButton
Left = 35
Top = 2
Action = DeleteFieldsActn
end
object ToolButton4: TToolButton
Left = 69
Top = 2
Width = 4
Caption = 'ToolButton4'
Style = tbsDivider
end
object tbNewFld: TToolButton
Left = 73
Top = 2
Action = NewActn
end
object ToolButton5: TToolButton
Left = 107
Top = 2
Width = 4
Caption = 'ToolButton5'
Style = tbsDivider
end
object tbMoveUp: TToolButton
Left = 111
Top = 2
Action = MoveUpActn
end
object tbMoveDown: TToolButton
Left = 145
Top = 2
Action = MoveDownActn
end
object ToolButton8: TToolButton
Left = 179
Top = 2
Width = 4
Caption = 'ToolButton8'
Style = tbsDivider
end
object tbSelect: TToolButton
Left = 183
Top = 2
Action = SelectAllActn
end
object tbUnselect: TToolButton
Left = 217
Top = 2
Action = UnselectAllActn
end
end
object PopupMenu1: TPopupMenu
left = 32
left = 64
top = 144
object MenuItem1: TMenuItem
Action = AddFieldsActn
@ -58,7 +127,7 @@ object DSFieldsEditorFrm: TDSFieldsEditorFrm
end
object ActionList1: TActionList
OnUpdate = ActionList1Update
left = 120
left = 152
top = 144
object AddFieldsActn: TAction
Category = 'Fields'
@ -100,4 +169,171 @@ object DSFieldsEditorFrm: TDSFieldsEditorFrm
OnExecute = UnselectAllActnExecute
end
end
object Fields: TImageList
left = 64
top = 200
Bitmap = {
4C69050000001000000010000000FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF000E80AAFF0E80AAFF0E80AAFF0E80AAFF0E80
AAFF0E80AAFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF000E80AAFFF1FFFFFFDEFFFFFFA3DEEFFFA0DDEDFFB6EA
F7FFC8F3F9FFD4FCFFFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF000E80AAFFEEFDFFFFCDF7FFFFCEF8FFFFAEDBE7FF2086ADFF0E80
AAFF077CA7FFD6FEFFFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF000E80AAFFBBF3FFFFBDF3FFFFC3F3FFFFD9FDFFFFDFF5F7FF248A
B0FF0E80AAFFDFFFFFFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF000E80AAFF94F0FFFF98ECFFFFA1EEFFFFAAEFFFFFC0F9FFFFD6F1
F5FF2E8EB2FFD4FAFEFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF000E80AAFF6CEAFFFF6FE3FFFF77E5FFFF82E7FFFF88E8FFFFA2F1
FFFF98E4F7FFAEF5FFFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF000E80AAFF3EE0FFFF49DCFEFF52DDFEFF5BDFFEFF64E2FFFF6CE3
FEFF7AE8FFFF88F0FFFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00
FF000E80AAFF1DB8DEFF2CC1E7FF1BD5FFFF27DAFFFF31DEFFFF3BE0FFFF44E1
FFFF51E8FFFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF000E80
AAFF1DB9E0FF9CD0E1FF4CE5FFFF17DAFFFF0E80AAFF0E80AAFF0E80AAFF0E80
AAFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF000E80AAFF2EBA
DEFF9CCDDEFF0E80AAFF098CB8FF0E80AAFFFF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000E80AAFF3FBDDEFFA1D2
E2FF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF000E80AAFF4EBEDCFF9ECDDDFF98F7
FFFF2FA7CCFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF000E80AAFF5DBFDBFFA0CEDFFFB2FBFFFF6DD4
EDFF0E80AAFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF000F82ABFFA2D2E2FFD7FFFFFF93E4F5FF1887
AFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF000E80AAFF0E80AAFF0E80AAFFFF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00E6C2
A7FFC47642FFC47642FFC47642FFC47642FFC47642FFC47642FFE6C2A7FFFF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00E6C2A7FFC47642FFC476
42FFF3E1D3FFFFFFFFFFF3E1D3FFECD1BDFFE6C2A7FFDFB291FFC47642FFC476
42FFE6C2A7FFFF00FF00FF00FF00FF00FF00FF00FF00C47642FFD69B70FFDFB2
91FFECD1BDFFF3E1D3FFECD1BDFFE6C2A7FFDFB291FFD9A37BFFD69B70FFD293
64FFC47642FFFF00FF00FF00FF00FF00FF00FF00FF00D29364FFC47642FFC476
42FFE6C2A7FFECD1BDFFE6C2A7FFDFB291FFD9A37BFFD69B70FFC47642FFC476
42FFD29364FFFF00FF00FF00FF00FF00FF00FF00FF00D29364FFD9A37BFFDFB2
91FFC47642FFC47642FFC47642FFC47642FFC47642FFC47642FFD9A37BFFD69B
70FFD29364FFFF00FF00FF00FF00FF00FF00FF00FF00C47642FFD9A37BFFDFB2
91FFECD1BDFFFFFFFFFFF3E1D3FFECD1BDFFE6C2A7FFDFB291FFD9A37BFFD69B
70FFC47642FFFF00FF00FF00FF00FF00FF00FF00FF00D29364FFC57845FFC476
42FFECD1BDFFFFFFFFFFF3E1D3FFECD1BDFFE6C2A7FFDFB291FFC47642FFC476
42FFD29364FFFF00FF00FF00FF00FF00FF00FF00FF00D29364FFD9A37BFFDFB2
91FFC47642FFC47642FFC47642FFC47642FFC47642FFC47642FFD9A37BFFD69B
70FFD29364FFFF00FF00FF00FF00FF00FF00FF00FF00C47642FFD9A37BFFDFB2
91FFECD1BDFFFFFFFFFFF3E1D3FFECD1BDFFE6C2A7FFDFB291FFD9A37BFFD69B
70FFC47642FFFF00FF00FF00FF00FF00FF00FF00FF00D29364FFC57845FFC476
42FFECD1BDFFFFFFFFFFF3E1D3FFECD1BDFFE6C2A7FFDFB291FFC47642FFC476
42FFD29364FFFF00FF00FF00FF00FF00FF00FF00FF00D29364FFD9A37BFFDFB2
91FFC47642FFC47642FFC47642FFC47642FFC47642FFC47642FFD9A37BFFD69B
70FFD29364FFFF00FF00FF00FF00FF00FF00FF00FF00C57845FFD9A37BFFDFB2
91FFECD1BDFFFFFFFFFFF3E1D3FFECD1BDFFE6C2A7FFDFB291FFD9A37BFFD69B
70FFC47642FFFF00FF00FF00FF00FF00FF00FF00FF00E6C2A7FFC57845FFC476
42FFECD1BDFFFFFFFFFFF3E1D3FFECD1BDFFE6C2A7FFDFB291FFC47642FFC476
42FFE6C2A7FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00E6C2
A7FFC47642FFC47642FFC47642FFC47642FFC47642FFC47642FFE6C2A7FFFF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00E4A70AFFEDB339FFF0B84DFFEEB6
4DFFE9B24DFFF2BA62FFF2B65AFFEEB04FFFEAA945FFE9A43AFFE79F31FFE89B
27FFE6971FFFD2851AFFFF00FF00EFB53EFFF8C9A2FFD1AC86FFD1AD86FFD1AD
86FFD1AC85FFD1AA7BFFCFA46EFFDCAB6BFFFFBD6AFFF6AF52FFFCAF46FFE79D
37FFF3A028FFFFA716FFAE602AFFE7AC1DFFD4AF8CFF6BD3CAFF6CD7CEFF6CD7
CEFF6CD7CFFF6CD7CFFF66D7D1FF8DE0D9FFFCC57BFFCA8D3DFFB58139FFAD7A
31FFC18225FFFFA20BFFAE602AFFE7AC1DFFF5CAA0FFE1DEC0FFE2E0C1FFDEDB
BCFFE1DCB9FFE3DAB1FFDED5A8FFE6D39FFFFFBF5DFFFCAB3CFFF3A333FFF69F
20FFF89D13FFFF9F04FFAE602AFFE7AC1DFFFFD4A5FFFCC794FFF5C190FFFFCF
92FFFEC07DFFEFB06AFFFFBD61FFFFB74FFFE3A45BFFFCAB3CFFFFAC24FFEE9B
2CFFF2981BFFFF9F00FFAE602AFFE7AC1DFFE9BF97FF63584DFF5A5149FFCDA5
74FF8A7155FF47413CFFB38649FF9D8397FF263EE3FF6E66A5FFCE904BFF3148
D2FF3448CCFFE3911EFFAE602AFFE7AC1DFFFED1A2FFBC9B78FFB3916CFFFDC4
7FFFD3A165FFA17B4DFFEFAA4DFFE9A657FF887394FFC78D55FFFEA317FF9C74
69FFA1745FFFFE9D01FFAE602AFFE7AC1DFFEDC299FF60554CFF5C5147FFD2A2
68FF8B704FFF4F463CFFB5843FFF977D92FF2E42DEFF6D64A1FFCA8A48FF3047
D3FF3649CCFFEB9317FFAE602AFFE7AC1DFFFFD0A0FFCAA276FFC09768FFFBBD
6DFFD69F58FFB98847FFEDA540FFE9A142FFAF7F56FFC58538FFE08D12FFB679
37FFB97B37FFFE9D02FFAE602AFFE7AC1DFFEEC093FF584E44FF534A41FFD39D
5BFF866A46FF433E39FFBA8338FFD5902FFF504330FF54452FFF524330FF5544
2BFF624A28FFF69702FFAE602AFFDAA039FFFFD195FFEAB777FFE4AE67FFFFBD
60FFF1AE4FFFDC9C3EFFFCAA32FFFFA922FFFB9F14FFFB9A05FFFB9800FFFB98
01FFFC9900FFFF9F00FFAE602AFFFF00FF00AE602AFFAE602AFFAE602AFFAE60
2AFFAE602AFFAE602AFFAE602AFFAE602AFFAE602AFFAE602AFFAE602AFFAE60
2AFFAE602AFFAE602AFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00AA5A2FFFAA5A2FFFAA5A2FFFAA5A
2FFFAA5A2FFFAA5A2FFFAA5A2FFFAA5A2FFFAA5A2FFFAA5A2FFFAA5A2FFFAA5A
2FFFAA5A2FFFAA5A2FFFFF00FF00AE5C27FFDB7F26FFDB7F26FFDB7F26FFDB7F
26FFDB7F26FFDB7F26FFDB7F26FFDB7F26FFDB7F26FFF6BB80FFDB7F26FFF6BB
80FFB37D53FF4E6ED4FFB95D19FFB26C39FFD3A35CFFD3A35CFFD3A35CFFD3A3
5CFFD3A35CFFD3A35CFFD3A35CFFD3A35CFFD3A35CFFD8AE6DFFD3A35CFFD9AE
6CFFD3A35CFFCAAA77FFB56D38FF834221FFFFFFFFFF6E94FFFF6E94FFFFFEFE
FEFFC47A39FFC5AEA5FFC1A99BFFC3AA99FFD2B89FFFD6AD88FFEC9522FFFF99
00FFFF9900FFFFE1C0FF8F4823FF834221FFFFFFFFFF6E94FFFF6E94FFFFE8DE
DAFFC2A18DFFE3D8C7FFF7E9CBFFF2CD9AFFE5CDA6FFCEBAA4FFD8C1ACFFFFE4
C7FFFEE1C1FFFEDEBBFF8F4823FF834221FFFFFFFFFFFFFFFFFFFFFEFEFFD2BE
B5FFD9BCA0FFFEE3A9FFF5D09EFFF9EBC2FFFDF9D8FFE5DBC1FFD7C09FFFFF99
00FFFF9900FFFEDCB5FF8F4823FF834221FFFFFFFFFFFFFFFFFFFFFEFEFFC4AC
A0FFE5C5A1FFFAD093FFF8E1B2FFFFFFE8FFFFFFF1FFF7F4DDFFC5AE9FFFFEDF
BCFFFEDCB6FFFFDAB0FF8F4823FF834221FFFFFFFFFF4CB74CFF4CB74CFFC4AD
A2FFDCB089FFFFEAB2FFFEF9D0FFFFFFE5FFFFFFF9FFF7F4F2FFC4AB9AFFFF99
00FFFF9900FFFED8ADFF8F4823FF834221FFFFFFFFFF4CB74CFF4CB74CFFCABF
BBFFD0AA8FFFF7E0B4FFFFFFDDFFFFFFE8FFFFFFF3FFE1D4CBFFCAAFA1FFFEDA
B2FFFFD9ADFFFED7ABFF8F4823FF834221FFFFFFFFFFFFFDFCFFBFE0F8FF87BD
E1FFAFA09AFFBBA293FFDBB68BFFE6D2B8FFDAC0A8FFC7A58BFFE49835FFFF99
00FFFF9900FFFED7ABFF8F4823FF834221FFFFFDFBFFC4E0F7FF5CBCFDFF3097
E8FF8C8383FFCFB5A4FFC3AA9BFFC3A99BFFD2B5A2FFE9C8A9FFFED9AFFFFED7
ABFFFED7ABFFFED7ABFF8F4823FF834221FFC3E2F6FF61BEFDFF2E95E9FF7C8E
ACFFC97125FFFEE4C6FFFEE1C0FFFEDEB9FFFEDBB4FFFED9B0FFFED7ACFFFED7
ABFFFED7ABFFFED7ABFF8F4823FF944A24FF66A1CEFF2A99F1FF687994FF9F5A
3BFF944B25FF944A24FF944A24FF944A24FF944A24FF944A24FF944A24FF944A
24FF944A24FF944A24FF944A24FFFF00FF00818C97FF4F749AFFFF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FFFF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FF808080FF8080
80FFC0C0C0FF808080FF808080FF808080FF808080FF808080FF808080FF8080
80FFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FFC0C0C0FF0000
00FFFFFFFFFF808080FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0C0FF0000
00FFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FF000000FF0000
00FFFFFFFFFF808080FF000000FF000000FF000000FF000000FF000000FF0000
00FFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFFC0C0C0FFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FF000000FF000000FF808080FFFFFF
FFFFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FF808080FF8080
80FFFFFFFFFFFFFFFFFF808080FF000000FFFFFFFFFF808080FF000000FFFFFF
FFFFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FFC0C0C0FF0000
00FFFFFFFFFFFFFFFFFF808080FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FFC0C0C0FF0000
00FFFFFFFFFF000000FF000000FF000000FF000000FF808080FFFFFFFFFFFFFF
FFFFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FFC0C0C0FF0000
00FFFFFFFFFFFFFFFFFF000000FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FFC0C0C0FF0000
00FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF000000FFFFFFFFFF0000
00FFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FFC0C0C0FF0000
00FFFFFFFFFF000000FF808080FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
FFFFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFF808080FF000000FF0000
00FFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFF0000
00FFFFFFFFFF000000FFFF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF808080FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF000000FFFF00FF00000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00
}
end
end

View File

@ -11,6 +11,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* *
*****************************************************************************
Modified Date: 20.10.2010
By: Marcelo Borges de Paula
}
unit fieldseditor;
@ -19,10 +22,10 @@ unit fieldseditor;
interface
uses
Classes, SysUtils, TypInfo, LCLProc, Forms,
Controls, Menus, Graphics, Dialogs, ComCtrls,
db, ActnList, StdCtrls, ObjInspStrConsts, ComponentEditors,
PropEdits, PropEditUtils, LCLType, NewField, FieldsList, ComponentReg;
Classes, SysUtils, TypInfo, LCLProc, Forms, Controls, Menus, Graphics,
Dialogs, ComCtrls, db, ActnList, StdCtrls, ObjInspStrConsts, ComponentEditors,
PropEdits, PropEditUtils, LCLType, ExtCtrls, NewField, FieldsList,
ComponentReg, types;
type
@ -31,8 +34,20 @@ type
{ TDSFieldsEditorFrm }
TDSFieldsEditorFrm = class(TForm)
Fields: TImageList;
MenuItem6: TMenuItem;
MenuItem7: TMenuItem;
tbCommands: TToolBar;
tbAddFld: TToolButton;
tbUnselect: TToolButton;
tbDeleteFld: TToolButton;
tbNewFld: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
tbMoveUp: TToolButton;
tbMoveDown: TToolButton;
ToolButton8: TToolButton;
tbSelect: TToolButton;
UnselectAllActn: TAction;
SelectAllActn: TAction;
FieldsListBox: TListBox;
@ -54,6 +69,8 @@ type
procedure FieldsEditorFrmClose(Sender: TObject;
var CloseAction: TCloseAction);
procedure FieldsEditorFrmDestroy(Sender: TObject);
procedure FieldsListBoxDrawItem(Control: TWinControl; Index: Integer;
ARect: TRect; State: TOwnerDrawState);
procedure FieldsListBoxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure NewActnExecute(Sender: TObject);
@ -65,7 +82,7 @@ type
protected
{ protected declarations }
procedure DoSelected(All: boolean);
procedure SelectionChanged;
procedure SelectionChanged(AOrderChanged: Boolean = false);
procedure OnComponentRenamed(AComponent: TComponent);
procedure OnPersistentDeleting(APersistent: TPersistent);
procedure OnGetSelection(const ASelection: TPersistentSelectionList);
@ -78,6 +95,7 @@ type
FComponentEditor: TFieldsComponentEditor;
procedure ExchangeItems(const fFirst, fSecond: integer);
procedure RefreshFieldsListBox(SelectAllNew: boolean);
function FindChild(ACandidate: TPersistent; out AIndex: Integer): Boolean;
public
{ public declarations }
constructor Create(AOwner: TComponent; ADataset: TDataset;
@ -100,6 +118,9 @@ implementation
{$R *.lfm}
uses
IDEImagesIntf;
{ TDSFieldsEditorFrm }
procedure TDSFieldsEditorFrm.AddFieldsActnExecute(Sender: TObject);
@ -126,6 +147,15 @@ constructor TDSFieldsEditorFrm.Create(AOwner: TComponent; ADataset: TDataset;
begin
inherited Create(AOwner);
tbCommands.Images := IDEImages.Images_16;
tbAddFld.ImageIndex := IDEImages.LoadImage(16, 'laz_add');
tbDeleteFld.ImageIndex := IDEImages.LoadImage(16, 'laz_delete');
tbNewFld.ImageIndex := IDEImages.LoadImage(16,'menu_new');
tbMoveDown.ImageIndex := IDEImages.LoadImage(16, 'arrow_down');
tbMoveUp.ImageIndex := IDEImages.LoadImage(16, 'arrow_up');
tbSelect.ImageIndex := IDEImages.LoadImage(16, 'menu_select_all');
tbUnselect.ImageIndex := IDEImages.LoadImage(16, 'menu_close_all');
LinkDataset := ADataset;
FDesigner := ADesigner;
Caption := fesFeTitle + ' - ' + LinkDataset.Name;
@ -136,9 +166,13 @@ begin
NewActn.Caption:=oisNew;
NewActn.Hint:=oisCreateNewFieldAndAddItAtCurrentPosition;
MoveUpActn.Caption:=oisMoveUp;
MoveUpActn.Hint:=oisMoveUpHint;
MoveDownActn.Caption:=oisMoveDown;
MoveDownActn.Hint:=oisMoveDownHint;
SelectAllActn.Caption:=oisSelectAll;
SelectAllActn.Hint:=oisSelectAllHint;
UnselectAllActn.Caption:=oisUnselectAll;
UnselectAllActn.Hint:=oisUnselectAllHint;
FieldsListBox.Clear;
RefreshFieldsListBox(False);
@ -161,23 +195,20 @@ end;
procedure TDSFieldsEditorFrm.DeleteFieldsActnExecute(Sender: TObject);
var i: integer;
PreActive: boolean;
bModified: boolean;
fld: TField;
begin
PreActive := LinkDataSet.Active;
LinkDataSet.Active := False;
bModified := False;
if FieldsListBox.SelCount = 0 then exit;
for i := FieldsListBox.Items.Count - 1 downto 0 do
if FieldsListBox.Selected[i] then begin
fld := TField(FieldsListBox.Items.Objects[i]);
FieldsListBox.Items.Delete(i);
FDesigner.PropertyEditorHook.PersistentDeleting(fld);
fld := nil;
bModified := True;
fld.Free;
end;
FDesigner.Modified;
SelectionChanged;
if bModified then
fDesigner.Modified;
if PreActive then
LinkDataSet.Active := True;
end;
@ -198,6 +229,30 @@ begin
GlobalDesignHook.RemoveAllHandlersForObject(Self);
end;
procedure TDSFieldsEditorFrm.FieldsListBoxDrawItem(Control: TWinControl;
Index: Integer; ARect: TRect; State: TOwnerDrawState);
var fld: TField;
begin
if Index < 0 then Exit;
if not Assigned(FieldsListBox.Items.Objects[Index]) then Exit;
//
FieldsListBox.Canvas.FillRect(ARect);
fld := TField(FieldsListBox.Items.Objects[Index]);
//
if pfinKey in fld.ProviderFlags then
Fields.Draw(FieldsListBox.Canvas,1,ARect.Top,0)
else
case fld.FieldKind of
fkData : Fields.Draw(FieldsListBox.Canvas,1,ARect.Top,1);
fkCalculated : Fields.Draw(FieldsListBox.Canvas,1,ARect.Top,2);
fkLookup : Fields.Draw(FieldsListBox.Canvas,1,ARect.Top,3);
fkInternalCalc : Fields.Draw(FieldsListBox.Canvas,1,ARect.Top,4);
end;
//
FieldsListBox.Canvas.TextRect(ARect, ARect.Left + 20,ARect.Top,
FieldsListBox.Items[Index]);
end;
procedure TDSFieldsEditorFrm.FieldsListBoxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
@ -241,7 +296,7 @@ begin
if PreActive And LinkDataset.DefaultFields then
LinkDataset.Close;
//Deselect & refresh all existing
DoSelected(False);
FieldsListBox.ClearSelection;
//Add new fields
for i := 0 to LinkDataset.Fields.Count - 1 do begin
fld := LinkDataset.Fields[i];
@ -254,6 +309,16 @@ begin
LinkDataset.Active:=true;
end;
function TDSFieldsEditorFrm.FindChild(ACandidate: TPersistent; out
AIndex: Integer): Boolean;
begin
if ACandidate is TField then
AIndex := FieldsListBox.Items.IndexOfObject(ACandidate)
else
AIndex := -1;
Result := AIndex >= 0;
end;
procedure TDSFieldsEditorFrm.NewActnExecute(Sender: TObject);
var nf: TNewFieldFrm;
begin
@ -282,7 +347,7 @@ begin
ExchangeItems(i, i + 1);
bModified := True;
end;
SelectionChanged;
SelectionChanged(True);
if bModified then fDesigner.Modified;
end;
@ -297,7 +362,7 @@ begin
ExchangeItems(i - 1, i);
bModified := True;
end;
SelectionChanged;
SelectionChanged(True);
if bModified then fDesigner.Modified;
end;
@ -343,12 +408,13 @@ begin
end;
end;
procedure TDSFieldsEditorFrm.SelectionChanged;
procedure TDSFieldsEditorFrm.SelectionChanged(AOrderChanged: Boolean = false);
var SelList: TPersistentSelectionList;
begin
GlobalDesignHook.RemoveHandlerSetSelection(@OnSetSelection);
try
SelList := TPersistentSelectionList.Create;
SelList.ForceUpdate := AOrderChanged;
try
OnGetSelection(SelList);
FDesigner.PropertyEditorHook.SetSelection(SelList) ;
@ -379,12 +445,8 @@ end;
procedure TDSFieldsEditorFrm.OnPersistentDeleting(APersistent: TPersistent);
var i: integer;
begin
if APersistent = LinkDataset then begin
// removing all fields here ?
end else begin
i := FieldsListBox.Items.IndexOfObject(APersistent as TObject);
if i >= 0 then FieldsListBox.Items.Delete( i );
end;
if FindChild(APersistent, i) then
FieldsListBox.Items.Delete(i);
end;
procedure TDSFieldsEditorFrm.OnGetSelection(
@ -404,26 +466,24 @@ var i, j: integer;
begin
if Assigned(ASelection) then begin
//Unselect all
DoSelected(False);
FieldsListBox.ClearSelection;
//select from list
for i := 0 to ASelection.Count - 1 do
if ASelection.Items[i] is TField then begin
j := FieldsListBox.Items.IndexOfObject(ASelection.Items[i]);
if j >= 0 then FieldsListBox.Selected[j] := True;
end;
if FindChild(ASelection.Items[i], j) then
FieldsListBox.Selected[j] := true;
end;
end;
procedure TDSFieldsEditorFrm.OnPersistentAdded(APersistent: TPersistent;
Select: boolean);
var i: integer;
var fld: TField;
begin
if Assigned(APersistent) And
(APersistent is TField) And
((APersistent as TField).DataSet = LinkDataset) then begin
i := FieldsListBox.Items.AddObject( TField(APersistent).FieldName, APersistent );
FieldsListBox.Selected[i] := Select;
TField(APersistent).Index := i;
fld := APersistent as TField;
with FieldsListBox do
Selected[Items.AddObject(fld.FieldName, fld)] := Select;
end;
end;

View File

@ -413,6 +413,11 @@ resourcestring
fesOkBtn = 'OK';
fesCancelBtn = 'Cancel';
fesFieldCanTBeC = 'Field %s cannot be created!';
oisMoveUpHint = 'Move field up';
oisMoveDownHint = 'Move field down';
oisSelectAllHint = 'Select All Fields';
oisUnselectAllHint = 'Unselect All';
//Key strings
srVK_UNKNOWN = 'Unknown';