converted StringGrid Editor, Columns Editor and FindInFiles to lfm from Tomas Gregorovic

git-svn-id: trunk@8763 -
This commit is contained in:
mattias 2006-02-17 18:03:26 +00:00
parent 00a046c086
commit bb2b186050
11 changed files with 773 additions and 459 deletions

4
.gitattributes vendored
View File

@ -1046,6 +1046,8 @@ ide/exttooldialog.lrs svneol=native#text/plain
ide/exttooldialog.pas svneol=native#text/pascal
ide/exttooleditdlg.pas svneol=native#text/pascal
ide/filereferencelist.pas svneol=native#text/pascal
ide/findinfilesdlg.lfm svneol=native#text/plain
ide/findinfilesdlg.lrs svneol=native#text/plain
ide/findinfilesdlg.pas svneol=native#text/pascal
ide/findrenameidentifier.lfm svneol=native#text/plain
ide/findrenameidentifier.lrs svneol=native#text/pascal
@ -1240,6 +1242,8 @@ ideintf/packageintf.pas svneol=native#text/pascal
ideintf/projectintf.pas svneol=native#text/pascal
ideintf/propedits.pp svneol=native#text/pascal
ideintf/srceditorintf.pas svneol=native#text/pascal
ideintf/stringgriddlg.lfm svneol=native#text/plain
ideintf/stringgriddlg.lrs svneol=native#text/plain
ideintf/stringspropeditdlg.lfm svneol=native#text/plain
ideintf/stringspropeditdlg.lrs svneol=native#text/plain
ideintf/texttools.pas svneol=native#text/pascal

198
ide/findinfilesdlg.lfm Normal file
View File

@ -0,0 +1,198 @@
object LazFindInFilesDialog: TLazFindInFilesDialog
ActiveControl = TextToFindComboBox
Caption = 'Find in files'
ClientHeight = 402
ClientWidth = 368
Constraints.MinHeight = 400
Constraints.MinWidth = 260
OnCreate = FormCreate
PixelsPerInch = 112
Position = poScreenCenter
HorzScrollBar.Page = 367
VertScrollBar.Page = 401
Left = 391
Height = 402
Top = 158
Width = 368
object TextToFindLabel: TLabel
Caption = 'Text To Find:'
Color = clNone
ParentColor = False
Left = 6
Height = 13
Top = 11
Width = 74
end
object TextToFindComboBox: TComboBox
Anchors = [akTop, akLeft, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
MaxLength = 0
TabOrder = 0
Left = 102
Height = 21
Top = 6
Width = 260
end
object OptionsCheckGroupBox: TCheckGroup
Anchors = [akTop, akLeft, akRight]
AutoFill = True
BorderSpacing.InnerBorder = 6
Caption = 'Options'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.HorizontalSpacing = 6
ChildSizing.VerticalSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
Items.Strings = (
'Case sensitive'
'Whole words only'
'Regular expressions'
)
TabOrder = 1
Left = 6
Height = 86
Top = 36
Width = 356
Data = {
03000000020202
}
end
object WhereRadioGroup: TRadioGroup
Anchors = [akTop, akLeft, akRight]
AutoFill = True
Caption = 'Where'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.HorizontalSpacing = 6
ChildSizing.VerticalSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ItemIndex = 1
Items.Strings = (
'search all files in project'
'search all open files'
'search in directories'
)
OnClick = WhereRadioGroupClick
TabOrder = 2
Left = 6
Height = 82
Top = 132
Width = 356
end
object DirectoryOptionsGroupBox: TGroupBox
Anchors = [akTop, akLeft, akRight, akBottom]
Caption = 'Directory Options'
ClientHeight = 123
ClientWidth = 352
Enabled = False
TabOrder = 3
Left = 6
Height = 140
Top = 222
Width = 356
object DirectoryLabel: TLabel
Caption = 'Directory:'
Color = clNone
ParentColor = False
Left = 6
Height = 13
Top = 8
Width = 55
end
object FileMaskLabel: TLabel
Caption = 'File mask (*;*.*;*.bak?):'
Color = clNone
ParentColor = False
Left = 6
Height = 13
Top = 38
Width = 128
end
object DirectoryComboBox: TComboBox
Anchors = [akTop, akLeft, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
MaxLength = 0
TabOrder = 0
Left = 88
Height = 21
Top = 6
Width = 228
end
object DirectoryBrowse: TBitBtn
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 2
Caption = '...'
Layout = blGlyphTop
NumGlyphs = 0
OnClick = DirectoryBrowseClick
TabOrder = 1
Left = 322
Height = 21
Top = 6
Width = 21
end
object FileMaskComboBox: TComboBox
Anchors = [akTop, akLeft, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
MaxLength = 0
TabOrder = 2
Text = '*.pas;*.pp;*.inc'
Left = 6
Height = 21
Top = 56
Width = 310
end
object IncludeSubDirsCheckBox: TCheckBox
Caption = 'Include sub directories'
TabOrder = 3
Left = 6
Height = 24
Top = 92
Width = 154
end
end
object OKButton: TButton
Anchors = [akRight, akBottom]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Caption = 'OK'
Default = True
ModalResult = 1
TabOrder = 4
Left = 204
Height = 25
Top = 370
Width = 75
end
object CancelButton: TButton
Anchors = [akRight, akBottom]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Cancel = True
Caption = 'Cancel'
ModalResult = 2
TabOrder = 5
Left = 287
Height = 25
Top = 370
Width = 75
end
object SelectDirectoryDialog: TSelectDirectoryDialog
Options = [ofFileMustExist, ofEnableSizing, ofViewDetail]
Title = 'Select Directory'
FilterIndex = 0
Title = 'Select Directory'
left = 324
top = 204
end
end

131
ide/findinfilesdlg.lrs Normal file
View File

@ -0,0 +1,131 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TFindInFilesDialog','FORMDATA',[
'TPF0'#18'TFindInFilesDialog'#17'FindInFilesDialog'#7'Caption'#6#17'FindInFil'
+'esDialog'#12'ClientHeight'#3#144#1#11'ClientWidth'#3'@'#1#21'Constraints.Mi'
+'nHeight'#3#144#1#20'Constraints.MinWidth'#3#4#1#13'PixelsPerInch'#2'`'#8'Po'
+'sition'#7#14'poScreenCenter'#18'HorzScrollBar.Page'#3'?'#1#18'VertScrollBar'
+'.Page'#3#143#1#4'Left'#3#135#1#6'Height'#3#144#1#3'Top'#3#158#0#5'Width'#3
+'@'#1#0#6'TLabel'#15'TextToFindLabel'#7'Caption'#6#13'Text To Find:'#5'Color'
+#7#6'clNone'#11'ParentColor'#8#4'Left'#2#6#6'Height'#2#14#3'Top'#2#11#5'Widt'
+'h'#2'A'#0#0#9'TComboBox'#18'TextToFindComboBox'#7'Anchors'#11#5'akTop'#6'ak'
+'Left'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cb'
+'actSearchAscending'#0#9'MaxLength'#2#0#8'TabOrder'#2#0#4'Left'#2'f'#6'Heigh'
+'t'#2#21#3'Top'#2#6#5'Width'#3#212#0#0#0#11'TCheckGroup'#15'OptionsGroupBox'
+#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#25'BorderSpacin'
+'g.InnerBorder'#2#6#7'Caption'#6#7'Options'#28'ChildSizing.LeftRightSpacing'
+#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.HorizontalSpacing'#2
+#6#27'ChildSizing.VerticalSpacing'#2#6#28'ChildSizing.ShrinkHorizontal'#7#14
+'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'Chil'
+'dSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Controls'
+'PerLine'#2#1#13'Items.Strings'#1#6#14'Case sensitive'#6#16'Whole words only'
+#6#19'Regular expressions'#0#8'TabOrder'#2#1#4'Left'#2#6#6'Height'#2'V'#3'To'
+'p'#2'$'#5'Width'#3'4'#1#4'Data'#10#7#0#0#0#3#0#0#0#2#2#2#0#0#11'TRadioGroup'
+#15'WhereRadioGroup'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFil'
+'l'#9#7'Caption'#6#5'Where'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSiz'
+'ing.TopBottomSpacing'#2#6#29'ChildSizing.HorizontalSpacing'#2#6#27'ChildSiz'
+'ing.VerticalSpacing'#2#6#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChil'
+'ds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layo'
+'ut'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1
+#9'ItemIndex'#2#1#13'Items.Strings'#1#6#27'search all files in project'#6#21
+'search all open files'#6#21'search in directories'#0#8'TabOrder'#2#2#4'Left'
+#2#6#6'Height'#2'R'#3'Top'#3#132#0#5'Width'#3'4'#1#0#0#9'TGroupBox'#24'Direc'
+'toryOptionsGroupBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'
+#0#7'Caption'#6#17'Directory Options'#12'ClientHeight'#2'x'#11'ClientWidth'#3
+'0'#1#8'TabOrder'#2#3#4'Left'#2#6#6'Height'#3#138#0#3'Top'#3#222#0#5'Width'#3
+'4'#1#0#6'TLabel'#14'DirectoryLabel'#7'Caption'#6#10'Directory:'#5'Color'#7#6
+'clNone'#11'ParentColor'#8#4'Left'#2#6#6'Height'#2#14#3'Top'#2#8#5'Width'#2
+'1'#0#0#6'TLabel'#13'FileMaskLabel'#7'Caption'#6#25'File mask (*;*.*;*.bak?)'
+':'#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#6#6'Height'#2#14#3'Top'
+#2'&'#5'Width'#2'y'#0#0#9'TComboBox'#17'DirectoryComboBox'#7'Anchors'#11#5'a'
+'kTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineCompl'
+'ete'#20'cbactSearchAscending'#0#9'MaxLength'#2#0#8'TabOrder'#2#0#4'Left'#2
+'X'#6'Height'#2#21#3'Top'#2#6#5'Width'#3#180#0#0#0#7'TBitBtn'#15'DirectoryBr'
+'owse'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2
+#7'Caption'#6#3'...'#6'Layout'#7#10'blGlyphTop'#9'NumGlyphs'#2#0#8'TabOrder'
+#2#1#4'Left'#3#18#1#6'Height'#2#21#3'Top'#2#6#5'Width'#2#21#0#0#9'TComboBox'
+#16'FileMaskComboBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoC'
+'ompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#9'Max'
+'Length'#2#0#8'TabOrder'#2#2#4'Text'#6#16'*.pas;*.pp;*.inc'#4'Left'#2#6#6'He'
+'ight'#2#21#3'Top'#2'8'#5'Width'#3#6#1#0#0#9'TCheckBox'#22'IncludeSubDirsChe'
+'ckBox'#7'Caption'#6#23'Include sub directories'#8'TabOrder'#2#3#4'Left'#2#6
+#6'Height'#2#13#3'Top'#2'\'#5'Width'#2'~'#0#0#0#7'TButton'#8'OKButton'#7'Anc'
+'hors'#11#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#25'BorderSpa'
+'cing.InnerBorder'#2#2#7'Caption'#6#2'OK'#7'Default'#9#11'ModalResult'#2#1#8
+'TabOrder'#2#4#4'Left'#3#156#0#6'Height'#2#25#3'Top'#3'p'#1#5'Width'#2'K'#0#0
+#7'TButton'#12'CancelButton'#7'Anchors'#11#7'akRight'#8'akBottom'#0#20'Borde'
+'rSpacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Captio'
+'n'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#5#4'Left'#3#239#0#6'Height'
+#2#25#3'Top'#3'p'#1#5'Width'#2'K'#0#0#22'TSelectDirectoryDialog'#22'SelectDi'
+'rectoryDialog1'#7'Options'#11#15'ofFileMustExist'#14'ofEnableSizing'#12'ofV'
+'iewDetail'#0#5'Title'#6#16'Select Directory'#11'FilterIndex'#2#0#5'Title'#6
+#16'Select Directory'#4'left'#3'D'#1#3'top'#3#204#0#0#0#0
]);
LazarusResources.Add('TLazFindInFilesDialog','FORMDATA',[
'TPF0'#21'TLazFindInFilesDialog'#20'LazFindInFilesDialog'#13'ActiveControl'#7
+#18'TextToFindComboBox'#7'Caption'#6#13'Find in files'#12'ClientHeight'#3#146
+#1#11'ClientWidth'#3'p'#1#21'Constraints.MinHeight'#3#144#1#20'Constraints.M'
+'inWidth'#3#4#1#8'OnCreate'#7#10'FormCreate'#13'PixelsPerInch'#2'p'#8'Positi'
+'on'#7#14'poScreenCenter'#18'HorzScrollBar.Page'#3'o'#1#18'VertScrollBar.Pag'
+'e'#3#145#1#4'Left'#3#135#1#6'Height'#3#146#1#3'Top'#3#158#0#5'Width'#3'p'#1
+#0#6'TLabel'#15'TextToFindLabel'#7'Caption'#6#13'Text To Find:'#5'Color'#7#6
+'clNone'#11'ParentColor'#8#4'Left'#2#6#6'Height'#2#13#3'Top'#2#11#5'Width'#2
+'J'#0#0#9'TComboBox'#18'TextToFindComboBox'#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSea'
+'rchAscending'#0#9'MaxLength'#2#0#8'TabOrder'#2#0#4'Left'#2'f'#6'Height'#2#21
+#3'Top'#2#6#5'Width'#3#4#1#0#0#11'TCheckGroup'#20'OptionsCheckGroupBox'#7'An'
+'chors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#25'BorderSpacing.In'
+'nerBorder'#2#6#7'Caption'#6#7'Options'#28'ChildSizing.LeftRightSpacing'#2#6
+#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.HorizontalSpacing'#2#6
+#27'ChildSizing.VerticalSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24
+'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenou'
+'sChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'Chil'
+'dSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cc'
+'lLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#13'Items.S'
+'trings'#1#6#14'Case sensitive'#6#16'Whole words only'#6#19'Regular expressi'
+'ons'#0#8'TabOrder'#2#1#4'Left'#2#6#6'Height'#2'V'#3'Top'#2'$'#5'Width'#3'd'
+#1#4'Data'#10#7#0#0#0#3#0#0#0#2#2#2#0#0#11'TRadioGroup'#15'WhereRadioGroup'#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#7'Caption'#6#5'Wh'
+'ere'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2
+#6#29'ChildSizing.HorizontalSpacing'#2#6#27'ChildSizing.VerticalSpacing'#2#6
+#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSi'
+'zing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkH'
+'orizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScal'
+'eChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'Chil'
+'dSizing.ControlsPerLine'#2#1#9'ItemIndex'#2#1#13'Items.Strings'#1#6#27'sear'
+'ch all files in project'#6#21'search all open files'#6#21'search in directo'
+'ries'#0#7'OnClick'#7#20'WhereRadioGroupClick'#8'TabOrder'#2#2#4'Left'#2#6#6
+'Height'#2'R'#3'Top'#3#132#0#5'Width'#3'd'#1#0#0#9'TGroupBox'#24'DirectoryOp'
+'tionsGroupBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7
+'Caption'#6#17'Directory Options'#12'ClientHeight'#2'{'#11'ClientWidth'#3'`'
+#1#7'Enabled'#8#8'TabOrder'#2#3#4'Left'#2#6#6'Height'#3#140#0#3'Top'#3#222#0
+#5'Width'#3'd'#1#0#6'TLabel'#14'DirectoryLabel'#7'Caption'#6#10'Directory:'#5
+'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#6#6'Height'#2#13#3'Top'#2#8#5
+'Width'#2'7'#0#0#6'TLabel'#13'FileMaskLabel'#7'Caption'#6#25'File mask (*;*.'
+'*;*.bak?):'#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#6#6'Height'#2
+#13#3'Top'#2'&'#5'Width'#3#128#0#0#0#9'TComboBox'#17'DirectoryComboBox'#7'An'
+'chors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactE'
+'ndOfLineComplete'#20'cbactSearchAscending'#0#9'MaxLength'#2#0#8'TabOrder'#2
+#0#4'Left'#2'X'#6'Height'#2#21#3'Top'#2#6#5'Width'#3#228#0#0#0#7'TBitBtn'#15
+'DirectoryBrowse'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.Inner'
+'Border'#2#2#7'Caption'#6#3'...'#6'Layout'#7#10'blGlyphTop'#9'NumGlyphs'#2#0
+#7'OnClick'#7#20'DirectoryBrowseClick'#8'TabOrder'#2#1#4'Left'#3'B'#1#6'Heig'
+'ht'#2#21#3'Top'#2#6#5'Width'#2#21#0#0#9'TComboBox'#16'FileMaskComboBox'#7'A'
+'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbact'
+'EndOfLineComplete'#20'cbactSearchAscending'#0#9'MaxLength'#2#0#8'TabOrder'#2
+#2#4'Text'#6#16'*.pas;*.pp;*.inc'#4'Left'#2#6#6'Height'#2#21#3'Top'#2'8'#5'W'
+'idth'#3'6'#1#0#0#9'TCheckBox'#22'IncludeSubDirsCheckBox'#7'Caption'#6#23'In'
+'clude sub directories'#8'TabOrder'#2#3#4'Left'#2#6#6'Height'#2#24#3'Top'#2
+'\'#5'Width'#3#154#0#0#0#0#7'TButton'#8'OKButton'#7'Anchors'#11#7'akRight'#8
+'akBottom'#0#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#2#7
+'Caption'#6#2'OK'#7'Default'#9#11'ModalResult'#2#1#8'TabOrder'#2#4#4'Left'#3
+#204#0#6'Height'#2#25#3'Top'#3'r'#1#5'Width'#2'K'#0#0#7'TButton'#12'CancelBu'
+'tton'#7'Anchors'#11#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#25
+'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalR'
+'esult'#2#2#8'TabOrder'#2#5#4'Left'#3#31#1#6'Height'#2#25#3'Top'#3'r'#1#5'Wi'
+'dth'#2'K'#0#0#22'TSelectDirectoryDialog'#21'SelectDirectoryDialog'#7'Option'
+'s'#11#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#5'Title'#6
+#16'Select Directory'#11'FilterIndex'#2#0#5'Title'#6#16'Select Directory'#4
,'left'#3'D'#1#3'top'#3#204#0#0#0#0
]);

View File

@ -28,32 +28,25 @@ uses
InputHistory;
type
{ TLazFindInFilesDialog }
TLazFindInFilesDialog = class(TForm)
TextToFindLabel: TLabel;
TextToFindComboBox: TComboBox;
OptionsGroupBox: TGroupBox;
CaseSensitiveCheckBox: TCheckBox;
WholeWordsOnlyCheckBox: TCheckBox;
RegularExpressionsCheckBox: TCheckBox;
WhereRadioGroup: TRadioGroup;
DirectoryOptionsGroupBox: TGroupBox;
DirectoryLabel: TLabel;
DirectoryComboBox: TComboBox;
DirectoryBrowse: TBitBtn;
SelectDirectoryDialog: TSelectDirectoryDialog;
FileMaskLabel: TLabel;
FileMaskComboBox: TComboBox;
IncludeSubDirsCheckBox: TCheckBox;
OkButton: TButton;
FileMaskComboBox: TComboBox;
DirectoryBrowse: TBitBtn;
DirectoryComboBox: TComboBox;
DirectoryLabel: TLabel;
FileMaskLabel: TLabel;
OKButton: TButton;
CancelButton: TButton;
procedure LazFindInFilesDialogResize(Sender: TObject);
procedure OkButtonClick(Sender: TObject);
procedure CancelButtonClick(Sender: TObject);
DirectoryOptionsGroupBox: TGroupBox;
OptionsCheckGroupBox: TCheckGroup;
SelectDirectoryDialog: TSelectDirectoryDialog;
TextToFindComboBox: TComboBox;
TextToFindLabel: TLabel;
WhereRadioGroup: TRadioGroup;
procedure DirectoryBrowseClick(Sender: TObject);
procedure WhereRadioGroupChangeBounds(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure WhereRadioGroupClick(Sender: TObject);
procedure SetOptions(NewOptions: TLazFindInFileSearchOptions);
function GetOptions: TLazFindInFileSearchOptions;
@ -63,7 +56,6 @@ type
function GetFindText: string;
procedure SetFindText(const NewFindText: string);
public
constructor Create(AOwner:TComponent); override;
property Options: TLazFindInFileSearchOptions read GetOptions
write SetOptions;
property FindText: string read GetFindText write SetFindText;
@ -79,331 +71,102 @@ implementation
{ TLazFindInFilesDialog }
constructor TLazFindInFilesDialog.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
if LazarusResources.Find(ClassName)=nil then begin
Caption:=srkmecFindInFiles;
Width:=320;
Height:=430;
Position:=poScreenCenter;
OnResize:=@LazFindInFilesDialogResize;
TextToFindLabel:=TLabel.Create(Self);
with TextToFindLabel do begin
Name:='TextToFindLabel';
SetBounds(8,8,80,Height);
Caption:=lisFindFileTextToFind;
Parent:=Self;
end;
TextToFindComboBox:=TComboBox.Create(Self);
with TextToFindComboBox do begin
Name:='TextToFindComboBox';
SetBounds(TextToFindLabel.Left+TextToFindLabel.Width+5,
TextToFindLabel.Top-2,
Self.ClientWidth-TextToFindLabel.Left-TextToFindLabel.Width-13,
Height);
Text:='';
Parent:=Self;
end;
OptionsGroupBox:=TGroupBox.Create(Self);
with OptionsGroupBox do begin
Name:='OptionsGroupBox';
SetBounds(8,TextToFindLabel.Top+TextToFindLabel.Height+10,
Self.ClientWidth-20,95);
Caption:=dlgFROpts;
Parent:=Self;
end;
CaseSensitiveCheckBox:=TCheckBox.Create(Self);
with CaseSensitiveCheckBox do begin
Name:='CaseSensitiveCheckBox';
SetBounds(8,2,OptionsGroupBox.ClientWidth-20,20);
Caption:=lisFindFileCaseSensitive;
Parent:=OptionsGroupBox;
end;
WholeWordsOnlyCheckBox:=TCheckBox.Create(Self);
with WholeWordsOnlyCheckBox do begin
Name:='WholeWordsOnlyCheckBox';
SetBounds(CaseSensitiveCheckBox.Left,
CaseSensitiveCheckBox.Top+CaseSensitiveCheckBox.Height+2,
CaseSensitiveCheckBox.Width,20);
Caption:=lisFindFileWholeWordsOnly;
Parent:=OptionsGroupBox;
end;
RegularExpressionsCheckBox:=TCheckBox.Create(Self);
with RegularExpressionsCheckBox do begin
Name:='RegularExpressionsCheckBox';
SetBounds(CaseSensitiveCheckBox.Left,
WholeWordsOnlyCheckBox.Top+WholeWordsOnlyCheckBox.Height+2,
CaseSensitiveCheckBox.Width,20);
Caption:=lisFindFileRegularExpressions;
Parent:=OptionsGroupBox;
end;
WhereRadioGroup:=TRadioGroup.Create(Self);
with WhereRadioGroup do begin
Name:='WhereRadioGroup';
OnChangeBounds:=@WhereRadioGroupChangeBounds;
SetBounds(8,OptionsGroupBox.Top+OptionsGroupBox.Height+10,
Self.ClientWidth-20,90);
Caption:=lisFindFileWhere;
Items.BeginUpdate;
Items.Add(lisFindFilesearchAllFilesInProject);
Items.Add(lisFindFilesearchAllOpenFiles);
Items.Add(lisFindFilesearchInDirectories);
Items.EndUpdate;
ItemIndex:=1;
OnClick:= @WhereRadioGroupClick;
Parent:=Self;
end;
DirectoryOptionsGroupBox:=TGroupBox.Create(Self);
with DirectoryOptionsGroupBox do begin
Name:='DirectoryOptionsGroupBox';
SetBounds(8,WhereRadioGroup.Top+WhereRadioGroup.Height+10,
Self.ClientWidth-20,135);
Caption:=lisFindFileDirectoryOptions;
Enabled:= False;
Parent:=Self;
end;
DirectoryLabel:=TLabel.Create(Self);
with DirectoryLabel do begin
Name:='DirectoryLabel';
SetBounds(8,5,80,Height);
Caption:=lisCodeToolsDefsInsertBehindDirectory;
Parent:=DirectoryOptionsGroupBox;
end;
DirectoryComboBox:=TComboBox.Create(Self);
with DirectoryComboBox do begin
Name:='DirectoryComboBox';
Left:=DirectoryLabel.Left+DirectoryLabel.Width+5;
Top:=DirectoryLabel.Top-2;
Width:=Self.ClientWidth-Left-8-25-5;
Text:='';
Parent:=DirectoryOptionsGroupBox;
end;
DirectoryBrowse:=TBitBtn.Create(Self);
with DirectoryBrowse do begin
Name:='DirectoryBrowse';
SetBounds(DirectoryComboBox.Left+DirectoryComboBox.Width+5,
DirectoryComboBox.Top,25,25);
Caption:='...';
OnClick:=@DirectoryBrowseClick;
Parent:=DirectoryOptionsGroupBox;
end;
SelectDirectoryDialog := TSelectDirectoryDialog.Create(Self);
with SelectDirectoryDialog do
// the whole selected directory must exist (ofPathMustExist is not enough)
Options:= Options + [ofFileMustExist];
FileMaskLabel:=TLabel.Create(Self);
with FileMaskLabel do begin
Name:='FileMaskLabel';
SetBounds(8,DirectoryComboBox.Top+DirectoryComboBox.Height+5,200,Height);
Caption:=lisFindFileFileMaskBak;
Parent:=DirectoryOptionsGroupBox;
end;
FileMaskComboBox:=TComboBox.Create(Self);
with FileMaskComboBox do begin
Name:='FileMaskComboBox';
SetBounds(FileMaskLabel.Left, FileMaskLabel.Top+FileMaskLabel.Height+3,
Self.ClientWidth-20-5-25,Height);
Text:='*.pas;*.pp;*.inc';
Parent:=DirectoryOptionsGroupBox;
end;
IncludeSubDirsCheckBox:=TCheckBox.Create(Self);
with IncludeSubDirsCheckBox do begin
Name:='IncludeSubDirsCheckBox';
SetBounds(8,FileMaskComboBox.Top+FileMaskComboBox.Height+10,
150,Height);
Caption:=lisFindFileIncludeSubDirectories;
Parent:=DirectoryOptionsGroupBox;
end;
OkButton:=TButton.Create(Self);
with OkButton do begin
Name:='OkButton';
SetBounds(Self.ClientWidth-200,Self.ClientHeight-40,80,Height);
Caption:=lisLazBuildOk;
OnClick:=@OkButtonClick;
Default:=true;
Parent:=Self;
end;
CancelButton:=TButton.Create(Self);
with CancelButton do begin
Name:='CancelButton';
SetBounds(Self.ClientWidth-100,Self.ClientHeight-40,80,Height);
Caption:=dlgCancel;
OnClick:=@CancelButtonClick;
Cancel := true;
Parent:=Self;
end;
ActiveControl:=TextToFindComboBox;
end;
LazFindInFilesDialogResize(nil);
end;
procedure TLazFindInFilesDialog.LazFindInFilesDialogResize(Sender: TObject);
begin
with TextToFindLabel do begin
SetBounds(8,8,80,Height);
end;
with TextToFindComboBox do begin
SetBounds(TextToFindLabel.Left+TextToFindLabel.Width+5,
TextToFindLabel.Top-2,
Self.ClientWidth-TextToFindLabel.Left-TextToFindLabel.Width-13,
Height);
end;
with OptionsGroupBox do begin
SetBounds(8,TextToFindLabel.Top+TextToFindLabel.Height+10,
Self.ClientWidth-20,95);
end;
with WhereRadioGroup do begin
SetBounds(8,OptionsGroupBox.Top+OptionsGroupBox.Height+10,
Self.ClientWidth-20,90);
end;
with DirectoryOptionsGroupBox do begin
SetBounds(8,WhereRadioGroup.Top+WhereRadioGroup.Height+10,
Self.ClientWidth-20,135);
end;
with DirectoryComboBox do begin
Left:=DirectoryLabel.Left+DirectoryLabel.Width+5;
Top:=DirectoryLabel.Top-2;
Width:=Parent.ClientWidth-Left-8-25-5;
end;
with DirectoryBrowse do begin
SetBounds(DirectoryComboBox.Left+DirectoryComboBox.Width+5,
DirectoryComboBox.Top,25,25);
end;
with FileMaskLabel do begin
SetBounds(8,DirectoryComboBox.Top+DirectoryComboBox.Height+5,200,Height);
end;
with FileMaskComboBox do begin
SetBounds(FileMaskLabel.Left, FileMaskLabel.Top+FileMaskLabel.Height+3,
Self.ClientWidth-20-5-25,Height);
end;
with IncludeSubDirsCheckBox do begin
SetBounds(8,FileMaskComboBox.Top+FileMaskComboBox.Height+10,
150,Height);
end;
with OkButton do begin
SetBounds(Self.ClientWidth-200,Self.ClientHeight-40,80,Height);
end;
with CancelButton do begin
SetBounds(Self.ClientWidth-100,Self.ClientHeight-40,80,Height);
end;
end;
procedure TLazFindInFilesDialog.OkButtonClick(Sender: TObject);
begin
ModalResult:=mrOk;
end;
procedure TLazFindInFilesDialog.CancelButtonClick(Sender: TObject);
begin
ModalResult:=mrCancel;
end;
procedure TLazFindInFilesDialog.SetFindText(const NewFindText: string);
begin
TextToFindComboBox.Text:= NewFindText;
TextToFindComboBox.Text := NewFindText;
TextToFindComboBox.SelectAll;
ActiveControl:=TextToFindComboBox;
ActiveControl := TextToFindComboBox;
end;
function TLazFindInFilesDialog.GetFindText: string;
begin
Result:=TextToFindComboBox.Text;
Result := TextToFindComboBox.Text;
end;
procedure TLazFindInFilesDialog.WhereRadioGroupClick(Sender: TObject);
begin
DirectoryOptionsGroupBox.Enabled:= (WhereRadioGroup.ItemIndex = 2)
DirectoryOptionsGroupBox.Enabled := (WhereRadioGroup.ItemIndex = 2)
end;
procedure TLazFindInFilesDialog.DirectoryBrowseClick(Sender: TObject);
begin
SelectDirectoryDialog.InitialDir:= GetCurrentDir;
SelectDirectoryDialog.InitialDir := GetCurrentDir;
if SelectDirectoryDialog.Execute then
DirectoryComboBox.Text:= SelectDirectoryDialog.FileName;
DirectoryComboBox.Text := SelectDirectoryDialog.FileName;
end;
procedure TLazFindInFilesDialog.WhereRadioGroupChangeBounds(Sender: TObject);
procedure TLazFindInFilesDialog.FormCreate(Sender: TObject);
begin
//DebugLn('TLazFindInFilesDialog.WhereRadioGroupChangeBounds ',dbgs(WhereRadioGroup.BoundsRect));
if (WhereRadioGroup.Left>8) then begin
RaiseGDBException('');
end;
Caption := srkmecFindInFiles;
TextToFindLabel.Caption := lisFindFileTextToFind;
OptionsCheckGroupBox.Caption := dlgFROpts;
OptionsCheckGroupBox.Items[0] := lisFindFileCaseSensitive;
OptionsCheckGroupBox.Items[1] := lisFindFileWholeWordsOnly;
OptionsCheckGroupBox.Items[2] := lisFindFileRegularExpressions;
WhereRadioGroup.Caption:=lisFindFileWhere;
WhereRadioGroup.Items[0] := lisFindFilesearchAllFilesInProject;
WhereRadioGroup.Items[1] := lisFindFilesearchAllOpenFiles;
WhereRadioGroup.Items[2] := lisFindFilesearchInDirectories;
DirectoryOptionsGroupBox.Caption := lisFindFileDirectoryOptions;
DirectoryLabel.Caption := lisCodeToolsDefsInsertBehindDirectory;
FileMaskLabel.Caption := lisFindFileFileMaskBak;
IncludeSubDirsCheckBox.Caption := lisFindFileIncludeSubDirectories;
OkButton.Caption := lisLazBuildOk;
CancelButton.Caption := dlgCancel;
end;
procedure TLazFindInFilesDialog.SetOptions(
NewOptions: TLazFindInFileSearchOptions);
procedure TLazFindInFilesDialog.SetOptions(NewOptions: TLazFindInFileSearchOptions);
begin
CaseSensitiveCheckBox.Checked:=fifMatchCase in NewOptions;
WholeWordsOnlyCheckBox.Checked:=fifWholeWord in NewOptions;
RegularExpressionsCheckBox.Checked:=fifRegExpr in NewOptions;
DirectoryOptionsGroupBox.Enabled:=fifSearchDirectories in NewOptions;
IncludeSubDirsCheckBox.Checked:=fifIncludeSubDirs in NewOptions;
if fifSearchProject in NewOptions then WhereRadioGroup.ItemIndex:= 0;
if fifSearchOpen in NewOptions then WhereRadioGroup.ItemIndex:= 1;
if fifSearchDirectories in NewOptions then WhereRadioGroup.ItemIndex:= 2;
OptionsCheckGroupBox.Checked[0] := fifMatchCase in NewOptions;
OptionsCheckGroupBox.Checked[1] := fifWholeWord in NewOptions;
OptionsCheckGroupBox.Checked[2] := fifRegExpr in NewOptions;
DirectoryOptionsGroupBox.Enabled := fifSearchDirectories in NewOptions;
IncludeSubDirsCheckBox.Checked := fifIncludeSubDirs in NewOptions;
if fifSearchProject in NewOptions then WhereRadioGroup.ItemIndex := 0;
if fifSearchOpen in NewOptions then WhereRadioGroup.ItemIndex := 1;
if fifSearchDirectories in NewOptions then WhereRadioGroup.ItemIndex := 2;
end;
function TLazFindInFilesDialog.GetOptions: TLazFindInFileSearchOptions;
begin
Result:=[];
if CaseSensitiveCheckBox.Checked then Include(Result,fifMatchCase);
if WholeWordsOnlyCheckBox.Checked then Include(Result,fifWholeWord);
if RegularExpressionsCheckBox.Checked then Include(Result,fifRegExpr);
if IncludeSubDirsCheckBox.Checked then Include(Result,fifIncludeSubDirs);
Result := [];
if OptionsCheckGroupBox.Checked[0] then Include(Result, fifMatchCase);
if OptionsCheckGroupBox.Checked[1] then Include(Result, fifWholeWord);
if OptionsCheckGroupBox.Checked[2] then Include(Result, fifRegExpr);
if IncludeSubDirsCheckBox.Checked then Include(Result, fifIncludeSubDirs);
case WhereRadioGroup.ItemIndex of
0: Include(Result,fifSearchProject);
1: Include(Result,fifSearchOpen);
2: Include(Result,fifSearchDirectories);
0: Include(Result, fifSearchProject);
1: Include(Result, fifSearchOpen);
2: Include(Result, fifSearchDirectories);
end;//case
end;
function TLazFindInFilesDialog.GetSynOptions: TSynSearchOptions;
begin
Result:=[];
if CaseSensitiveCheckBox.Checked then Include(Result,ssoMatchCase);
if WholeWordsOnlyCheckBox.Checked then Include(Result,ssoWholeWord);
if RegularExpressionsCheckBox.Checked then Include(Result,ssoRegExpr);
Result := [];
if OptionsCheckGroupBox.Checked[0] then Include(Result, ssoMatchCase);
if OptionsCheckGroupBox.Checked[1] then Include(Result, ssoWholeWord);
if OptionsCheckGroupBox.Checked[2] then Include(Result, ssoRegExpr);
end;//GetSynOptions
procedure TLazFindInFilesDialog.SetSynOptions(NewOptions: TSynSearchOptions);
begin
CaseSensitiveCheckBox.Checked:=ssoMatchCase in NewOptions;
WholeWordsOnlyCheckBox.Checked:=ssoWholeWord in NewOptions;
RegularExpressionsCheckBox.Checked:=ssoRegExpr in NewOptions;
OptionsCheckGroupBox.Checked[0] := ssoMatchCase in NewOptions;
OptionsCheckGroupBox.Checked[1] := ssoWholeWord in NewOptions;
OptionsCheckGroupBox.Checked[2] := ssoRegExpr in NewOptions;
end;//SetSynOptions
initialization
FindInFilesDialog:=nil;
{$I findinfilesdlg.lrs}
FindInFilesDialog := nil;
end.

View File

@ -3979,17 +3979,20 @@ begin
end;
procedure TSourceNotebook.LoadFindInFilesHistory(ADialog: TLazFindInFilesDialog);
procedure AssignToComboBox(AComboBox: TComboBox; Strings: TStrings);
begin
AComboBox.Items.Assign(Strings);
if AComboBox.Items.Count>0 then
AComboBox.ItemIndex := 0;
end;
begin
if Assigned(ADialog) then
begin
with ADialog, InputHistories do
begin
//DebugLn('TSourceNotebook.LoadFindInFilesHistory ',dbgsName(TextToFindComboBox),' ',dbgsName(FindHistory));
TextToFindComboBox.Items.Assign(FindHistory);
if not EditorOpts.FindTextAtCursor then begin
if TextToFindComboBox.Items.Count>0 then begin

View File

@ -21,7 +21,6 @@ interface
uses
ActionsEditor,
ColumnDlg,
ComponentEditors,
ComponentReg,
ComponentTreeView,

View File

@ -255,9 +255,6 @@ type
The default componenteditor for TStringGrid }
TStringGridComponentEditor = class(TDefaultComponentEditor)
protected
procedure DoShowEditor;
procedure AssignGrid(dstGrid, srcGrid: TStringGrid; Full: boolean);
public
procedure ExecuteVerb(Index: Integer); override;
function GetVerb(Index: Integer): string; override;
@ -775,141 +772,174 @@ end;
{ TStringGridEditorDlg }
Type
TStringGridEditorDlg=Class(TForm)
type
TStringGridEditorDlg = class(TForm)
BtnApply: TBitBtn;
BtnCancel: TBitBtn;
BtnHelp: TBitBtn;
BtnOK: TBitBtn;
BtnLoad: TButton;
BtnSave: TButton;
BtnClean: TButton;
GroupBox: TGroupBox;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
StringGrid: TStringGrid;
procedure BtnApplyClick(Sender: TObject);
procedure BtnCleanClick(Sender: TObject);
procedure BtnLoadClick(Sender: TObject);
procedure BtnSaveClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure StringGridPrepareCanvas(sender: TObject; Col, Row: Integer;
aState: TGridDrawState);
private
FGrid: TStringGrid;
FFixedColor: TColor;
FFixedRows,FFixedCols: Integer;
procedure OnPrepareCanvas(Sender: TObject; Col,Row:Integer; aState: TGridDrawState);
FModified: Boolean;
FStringGrid: TStringGrid;
public
constructor create(AOwner: TComponent); override;
property Grid: TStringGrid read FGrid write FGrid;
property FixedColor: TColor read FFixedColor write FFixedColor;
property FixedRows: Integer read FFixedRows write FFixedRows;
property FixedCols: Integer read FFixedCols write FFixedCols;
property Modified: Boolean read FModified;
procedure LoadFromGrid(AStringGrid: TStringGrid);
procedure SaveToGrid;
end;
procedure TStringGridEditorDlg.OnPrepareCanvas(Sender: TObject;
Col,Row: Integer; aState: TGridDrawState);
function EditStringGrid(AStringGrid: TStringGrid): Boolean;
var
StringGridEditorDlg: TStringGridEditorDlg;
begin
if (Col<FFixedCols) or (Row<FFixedRows) then
FGrid.Canvas.Brush.Color := FFixedColor
StringGridEditorDlg := TStringGridEditorDlg.Create(Application);
try
StringGridEditorDlg.LoadFromGrid(AStringGrid);
if StringGridEditorDlg.ShowModal = mrOk then
begin
StringGridEditorDlg.SaveToGrid;
end;
Result := StringGridEditorDlg.Modified;
finally
StringGridEditorDlg.Free;
end;
end;
constructor TStringGridEditorDlg.create(AOwner: TComponent);
procedure AssignGrid(Dest, Src: TStringGrid; Full: Boolean);
var
I, J: Integer;
begin
inherited create(AOwner);
BorderStyle:=bsDialog;
SetBounds(0,0,350,320);
Position :=poScreenCenter;
Caption :=cesStringGridEditor2;
Dest.BeginUpdate;
try
if Full then
begin
Dest.Clear;
Dest.ColCount := Src.ColCount;
Dest.RowCount := Src.RowCount;
end;
for I := 0 to Src.RowCount - 1 do
Dest.RowHeights[I] := Src.RowHeights[I];
FGrid:=TStringGrid.Create(Self);
FGrid.Parent:=Self;
FGrid.SetBounds(5,5,Width-15, 250);
FGrid.FixedCols:=0;
FGrid.FixedRows:=0;
FGrid.Options:=Fgrid.Options + [goEditing,goColSizing,goRowSizing];
FGrid.OnPrepareCanvas := @OnPrepareCanvas;
FGrid.ExtendedColSizing := True;
FGrid.Anchors := [akLeft,akTop,akRight,akBottom];
for I := 0 to Src.ColCount - 1 do
Dest.ColWidths[I] := Src.ColWidths[I];
//Bnt Ok
With TBitBtn.Create(self) do
begin
Parent:= self;
Left := 240;
Top := FGrid.Top + Fgrid.Height + 5;
Width := 99;
Kind := bkOk;
Anchors := [akRight, akBottom];
for I := 0 to Src.ColCount - 1 do
for J := 0 to Src.RowCount - 1 do
Dest.Cells[I, J] := Src.Cells[I, J];
finally
Dest.EndUpdate(uoFull);
end;
end;
//Bnt Cancel
With TBitBtn.Create(self) do
{ TStringGridEditorDlg }
procedure TStringGridEditorDlg.StringGridPrepareCanvas(sender: TObject; Col,
Row: Integer; aState: TGridDrawState);
begin
if (Col < FStringGrid.FixedCols) or (Row < FStringGrid.FixedRows) then
StringGrid.Canvas.Brush.Color := FStringGrid.FixedColor;
end;
procedure TStringGridEditorDlg.LoadFromGrid(AStringGrid: TStringGrid);
begin
if Assigned(AStringGrid) then
begin
Parent:= self;
Left := 240;
Top := FGrid.Top + Fgrid.Height + height + 5;
Width := 99;
Kind := bkCancel;
Anchors := [akRight, akBottom];
FStringGrid := AStringGrid;
AssignGrid(StringGrid, AStringGrid, True);
FModified := False;
end;
end;
procedure TStringGridEditorDlg.SaveToGrid;
begin
if Assigned(FStringGrid) then
begin
AssignGrid(FStringGrid, StringGrid, False);
FModified := True;
end;
end;
procedure TStringGridEditorDlg.FormCreate(Sender: TObject);
begin
Caption := sccsSGEdtCaption;
GroupBox.Caption := sccsSGEdtGrp;
BtnClean.Caption := sccsSGEdtClean;
BtnApply.Caption := sccsSGEdtApply;
BtnLoad.Caption := sccsSGEdtLoad;
BtnSave.Caption := sccsSGEdtSave;
OpenDialog.Title := sccsSGEdtOpenDialog;
SaveDialog.Title := sccsSGEdtSaveDialog;
// Save/load buttons
StringGrid.ExtendedColSizing := True;
end;
procedure TStringGridEditorDlg.BtnLoadClick(Sender: TObject);
begin
if OpenDialog.Execute then
begin
StringGrid.LoadFromFile(OpenDialog.FileName);
end;
end;
procedure TStringGridEditorDlg.BtnCleanClick(Sender: TObject);
begin
StringGrid.Clean;
end;
procedure TStringGridEditorDlg.BtnApplyClick(Sender: TObject);
begin
SaveToGrid;
end;
procedure TStringGridEditorDlg.BtnSaveClick(Sender: TObject);
begin
if SaveDialog.Execute then
begin
StringGrid.SaveToFile(SaveDialog.FileName);
end;
end;
{ TStringGridComponentEditor }
procedure TStringGridComponentEditor.DoShowEditor;
var Dlg : TStringGridEditorDlg;
Hook: TPropertyEditorHook;
aGrid: TStringGrid;
begin
Dlg:=TStringGridEditorDlg.Create(nil);
try
if GetComponent is TStringGrid then begin
aGrid:=TStringGrid(GetComponent);
GetHook(Hook);
Dlg.FixedRows := AGrid.FixedRows;
Dlg.FixedCols := AGrid.FixedCols;
Dlg.FixedColor := AGrid.FixedColor;
AssignGrid(Dlg.FGrid, aGrid, true);
if Dlg.ShowModal=mrOK then
begin
//Apply the modifications
AssignGrid(aGrid, Dlg.FGrid, false);
//not work :o( aImg.AddImages(Dlg.fGrid);
Modified;
end;
end;
finally
Dlg.Free;
end;
end;
procedure TStringGridComponentEditor.AssignGrid(dstGrid, srcGrid: TStringGrid;
Full: boolean);
var
i,j: integer;
begin
DstGrid.BeginUpdate;
try
if Full then begin
DstGrid.Clear;
Dstgrid.ColCount:=srcGrid.ColCount;
DstGrid.RowCount:=srcGrid.RowCount;
end;
for i:=0 to srcGrid.RowCount-1 do
DstGrid.RowHeights[i]:=srcGrid.RowHeights[i];
for i:=0 to srcGrid.ColCount-1 do
DstGrid.ColWidths[i]:=srcGrid.ColWidths[i];
for i:=0 to srcGrid.ColCount-1 do
for j:=0 to srcGrid.RowCount-1 do
if srcGrid.Cells[i,j]<>dstGrid.Cells[i,j] then
dstGrid.Cells[i,j]:=srcGrid.Cells[i,j];
finally
Dstgrid.EndUpdate(uoFull);
end;
end;
procedure TStringGridComponentEditor.ExecuteVerb(Index: Integer);
var
Hook: TPropertyEditorHook;
begin
doShowEditor;
if Index = 0 then
begin
GetHook(Hook);
if EditStringGrid(GetComponent as TStringGrid) then
if Assigned(Hook) then
Hook.Modified(Self);
end;
end;
function TStringGridComponentEditor.GetVerb(Index: Integer): string;
begin
Result:=cesStringGridEditor;
if Index = 0 then Result := sccsSGEdt
else Result := '';
end;
function TStringGridComponentEditor.GetVerbCount: Integer;
begin
Result:=1;
Result := 1;
end;
{ TCheckListBoxEditorDlg }
@ -1343,6 +1373,7 @@ end;
initialization
{$I checklistboxeditordlg.lrs}
{$I checkgroupeditordlg.lrs}
{$I stringgriddlg.lrs}
RegisterComponentEditorProc:=@DefaultRegisterComponentEditorProc;
RegisterComponentEditor(TCustomNotebook,TNotebookComponentEditor);

View File

@ -120,11 +120,20 @@ resourcestring
sccsILEdtCenter = 'Center';
sccsILEdtOpenDialog = 'Add Images';
sccsILEdtSaveDialog = 'Save Image';
// StringGrid Editor
sccsSGEdt = 'Edit StringGrid...';
sccsSGEdtCaption = 'StringGrid Editor';
sccsSGEdtGrp = 'String Grid';
sccsSGEdtApply = 'Apply';
sccsSGEdtClean = 'Clean';
sccsSGEdtLoad = 'Load...';
sccsSGEdtSave = 'Save...';
sccsSGEdtOpenDialog = 'Open';
sccsSGEdtSaveDialog = 'Save';
// component editors
cesStringGridEditor = 'StringGrid Editor ...';
cesStringGridEditor2 = 'StringGrid Editor';
nbcesAddPage = 'Add page';
nbcesAddPage = 'Add page';
nbcesInsertPage = 'Insert page';
nbcesDeletePage = 'Delete page';
nbcesMovePageLeft = 'Move page left';

View File

@ -909,17 +909,6 @@ type
function GetAttributes: TPropertyAttributes; override;
procedure Edit; override;
end;
{ TListColumnsPropertyEditor
PropertyEditor editor for the TListColumns properties.
Brings up the dialog for entering text. }
TListColumnsPropertyEditor = class(TClassPropertyEditor)
public
procedure Edit; override;
function GetAttributes: TPropertyAttributes; override;
end;
//==============================================================================
// Delphi Compatible Property Editor Classnames
@ -4634,33 +4623,6 @@ begin
Result := [paMultiSelect, paDialog, paRevertable, paAutoUpdate];
end;
{ TListColumnsPropertyEditor }
procedure TListColumnsPropertyEditor.Edit;
var
ListColumns : TListColumns;
ColumnDlg: TColumnDlg;
begin
ColumnDlg:=TColumnDlg.Create(nil);
try
ListColumns := TListColumns(GetObjectValue);
ColumnDlg.Columns.Assign(ListColumns);
if ColumnDlg.ShowModal = mrOK then begin
ListColumns.Assign(ColumnDlg.Columns);
end;
finally
ColumnDlg.Free;
end;
end;
function TListColumnsPropertyEditor.GetAttributes: TPropertyAttributes;
begin
Result := [paDialog, paRevertable, paReadOnly];
end;
//==============================================================================
{ TCursorPropertyEditor }
function TCursorPropertyEditor.GetAttributes: TPropertyAttributes;
@ -6049,8 +6011,6 @@ begin
nil,'',TCursorPropertyEditor);
RegisterPropertyEditor(ClassTypeInfo(TComponent),nil
,'',TComponentPropertyEditor);
RegisterPropertyEditor(DummyClassForPropTypes.PTypeInfos('TListColumns'),
nil,'',TListColumnsPropertyEditor);
RegisterPropertyEditor(ClassTypeInfo(TCollection),
nil,'',TCollectionPropertyEditor);
RegisterPropertyEditor(DummyClassForPropTypes.PTypeInfos('AnsiString'),

163
ideintf/stringgriddlg.lfm Normal file
View File

@ -0,0 +1,163 @@
object StringGridEditorDlg: TStringGridEditorDlg
ActiveControl = StringGrid
Caption = 'StringGridEditorDlg'
ClientHeight = 296
ClientWidth = 394
Constraints.MinHeight = 250
Constraints.MinWidth = 340
OnCreate = FormCreate
PixelsPerInch = 96
Position = poScreenCenter
HorzScrollBar.Page = 393
VertScrollBar.Page = 295
Left = 340
Height = 296
Top = 251
Width = 394
object GroupBox: TGroupBox
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 6
Caption = 'String Grid'
ClientHeight = 235
ClientWidth = 378
TabOrder = 0
Left = 6
Height = 253
Top = 6
Width = 382
object StringGrid: TStringGrid
Align = alLeft
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
ColCount = 5
FixedColor = clBtnFace
FixedCols = 0
FixedRows = 0
GridLineWidth = 0
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRowSizing, goColSizing, goRowMoving, goColMoving, goEditing, goSmoothScroll]
RowCount = 5
ScrollBars = ssAutoBoth
TabOrder = 0
TabStop = True
VisibleColCount = 5
VisibleRowCount = 5
OnPrepareCanvas = StringGridPrepareCanvas
Left = 6
Height = 223
Top = 6
Width = 286
end
object BtnLoad: TButton
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Caption = 'Load...'
OnClick = BtnLoadClick
TabOrder = 1
Left = 298
Height = 25
Top = 6
Width = 75
end
object BtnSave: TButton
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Caption = 'Save...'
OnClick = BtnSaveClick
TabOrder = 2
Left = 298
Height = 25
Top = 37
Width = 75
end
object BtnClean: TButton
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Caption = 'Clean'
OnClick = BtnCleanClick
TabOrder = 3
Left = 298
Height = 25
Top = 68
Width = 75
end
end
object BtnHelp: TBitBtn
Align = alRight
Anchors = [akRight, akBottom]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Caption = '&Help'
Kind = bkHelp
NumGlyphs = 0
TabOrder = 1
Left = 313
Height = 25
Top = 265
Width = 75
end
object BtnApply: TBitBtn
Align = alRight
Anchors = [akRight, akBottom]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Caption = '&Apply'
NumGlyphs = 0
OnClick = BtnApplyClick
TabOrder = 2
Left = 232
Height = 25
Top = 265
Width = 75
end
object BtnCancel: TBitBtn
Align = alRight
Anchors = [akRight, akBottom]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Cancel = True
Caption = 'Cancel'
Kind = bkCancel
ModalResult = 2
NumGlyphs = 0
TabOrder = 3
Left = 151
Height = 25
Top = 265
Width = 75
end
object BtnOK: TBitBtn
Align = alRight
Anchors = [akRight, akBottom]
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Caption = '&OK'
Default = True
Kind = bkOK
ModalResult = 1
NumGlyphs = 0
TabOrder = 4
Left = 70
Height = 25
Top = 265
Width = 75
end
object OpenDialog: TOpenDialog
Title = 'Open'
FilterIndex = 0
Title = 'Open'
left = 132
top = 312
end
object SaveDialog: TSaveDialog
Title = 'Save'
FilterIndex = 0
Title = 'Save'
left = 132
top = 348
end
end

53
ideintf/stringgriddlg.lrs Normal file
View File

@ -0,0 +1,53 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TStringGridEditorDlg','FORMDATA',[
'TPF0'#20'TStringGridEditorDlg'#19'StringGridEditorDlg'#13'ActiveControl'#7#10
+'StringGrid'#7'Caption'#6#19'StringGridEditorDlg'#12'ClientHeight'#3'('#1#11
+'ClientWidth'#3#138#1#21'Constraints.MinHeight'#3#250#0#20'Constraints.MinWi'
+'dth'#3'T'#1#8'OnCreate'#7#10'FormCreate'#13'PixelsPerInch'#2'`'#8'Position'
+#7#14'poScreenCenter'#18'HorzScrollBar.Page'#3#137#1#18'VertScrollBar.Page'#3
+''''#1#4'Left'#3'T'#1#6'Height'#3'('#1#3'Top'#3#251#0#5'Width'#3#138#1#0#9'T'
+'GroupBox'#8'GroupBox'#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'#6'akLeft'#7
+'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerB'
+'order'#2#6#7'Caption'#6#11'String Grid'#12'ClientHeight'#3#235#0#11'ClientW'
+'idth'#3'z'#1#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#3#253#0#3'Top'#2#6#5'Wid'
+'th'#3'~'#1#0#11'TStringGrid'#10'StringGrid'#5'Align'#7#6'alLeft'#7'Anchors'
+#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6
+#8'ColCount'#2#5#10'FixedColor'#7#9'clBtnFace'#9'FixedCols'#2#0#9'FixedRows'
+#2#0#13'GridLineWidth'#2#0#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzL'
+'ine'#10'goVertLine'#10'goHorzLine'#11'goRowSizing'#11'goColSizing'#11'goRow'
+'Moving'#11'goColMoving'#9'goEditing'#14'goSmoothScroll'#0#8'RowCount'#2#5#10
+'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#7'TabStop'#9#15'VisibleColCoun'
+'t'#2#5#15'VisibleRowCount'#2#5#15'OnPrepareCanvas'#7#23'StringGridPrepareCa'
+'nvas'#4'Left'#2#6#6'Height'#3#223#0#3'Top'#2#6#5'Width'#3#30#1#0#0#7'TButto'
+'n'#7'BtnLoad'#7'Anchors'#11#5'akTop'#7'akRight'#0#20'BorderSpacing.Around'#2
+#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#7'Load...'#7'OnClick'#7#12
+'BtnLoadClick'#8'TabOrder'#2#1#4'Left'#3'*'#1#6'Height'#2#25#3'Top'#2#6#5'Wi'
+'dth'#2'K'#0#0#7'TButton'#7'BtnSave'#7'Anchors'#11#5'akTop'#7'akRight'#0#20
+'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#7
+'Save...'#7'OnClick'#7#12'BtnSaveClick'#8'TabOrder'#2#2#4'Left'#3'*'#1#6'Hei'
+'ght'#2#25#3'Top'#2'%'#5'Width'#2'K'#0#0#7'TButton'#8'BtnClean'#7'Anchors'#11
+#5'akTop'#7'akRight'#0#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerBo'
+'rder'#2#2#7'Caption'#6#5'Clean'#7'OnClick'#7#13'BtnCleanClick'#8'TabOrder'#2
+#3#4'Left'#3'*'#1#6'Height'#2#25#3'Top'#2'D'#5'Width'#2'K'#0#0#0#7'TBitBtn'#7
+'BtnHelp'#5'Align'#7#7'alRight'#7'Anchors'#11#7'akRight'#8'akBottom'#0#20'Bo'
+'rderSpacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#5'&H'
+'elp'#4'Kind'#7#6'bkHelp'#9'NumGlyphs'#2#0#8'TabOrder'#2#1#4'Left'#3'9'#1#6
+'Height'#2#25#3'Top'#3#9#1#5'Width'#2'K'#0#0#7'TBitBtn'#8'BtnApply'#5'Align'
+#7#7'alRight'#7'Anchors'#11#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'
+#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#6'&Apply'#9'NumGlyphs'#2
+#0#7'OnClick'#7#13'BtnApplyClick'#8'TabOrder'#2#2#4'Left'#3#232#0#6'Height'#2
+#25#3'Top'#3#9#1#5'Width'#2'K'#0#0#7'TBitBtn'#9'BtnCancel'#5'Align'#7#7'alRi'
+'ght'#7'Anchors'#11#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#25
+'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Caption'#6#6'Cancel'#4'Kind'#7
+#8'bkCancel'#11'ModalResult'#2#2#9'NumGlyphs'#2#0#8'TabOrder'#2#3#4'Left'#3
+#151#0#6'Height'#2#25#3'Top'#3#9#1#5'Width'#2'K'#0#0#7'TBitBtn'#5'BtnOK'#5'A'
+'lign'#7#7'alRight'#7'Anchors'#11#7'akRight'#8'akBottom'#0#20'BorderSpacing.'
+'Around'#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#3'&OK'#7'Default'
+#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2#0#8'TabOrder'#2#4#4
+'Left'#2'F'#6'Height'#2#25#3'Top'#3#9#1#5'Width'#2'K'#0#0#11'TOpenDialog'#10
+'OpenDialog'#5'Title'#6#4'Open'#11'FilterIndex'#2#0#5'Title'#6#4'Open'#4'lef'
+'t'#3#132#0#3'top'#3'8'#1#0#0#11'TSaveDialog'#10'SaveDialog'#5'Title'#6#4'Sa'
+'ve'#11'FilterIndex'#2#0#5'Title'#6#4'Save'#4'left'#3#132#0#3'top'#3'\'#1#0#0
+#0
]);