IDE: external tools: added dialog to see custom scanners

git-svn-id: trunk@15000 -
This commit is contained in:
mattias 2008-04-28 16:21:32 +00:00
parent e34cfbd177
commit 51800bb1a9
10 changed files with 502 additions and 206 deletions

3
.gitattributes vendored
View File

@ -1985,6 +1985,9 @@ ide/diskdiffsdialog.lfm svneol=native#text/plain
ide/diskdiffsdialog.lrs svneol=native#text/pascal
ide/diskdiffsdialog.pas svneol=native#text/pascal
ide/editdefinetree.pas svneol=native#text/pascal
ide/editmsgscannersdlg.lfm svneol=native#text/plain
ide/editmsgscannersdlg.lrs svneol=native#text/plain
ide/editmsgscannersdlg.pas svneol=native#text/plain
ide/editoroptions.lfm svneol=native#text/plain
ide/editoroptions.lrs svneol=native#text/pascal
ide/editoroptions.pp svneol=native#text/pascal

View File

@ -0,0 +1,91 @@
object EditMsgScannersDialog: TEditMsgScannersDialog
Left = 301
Height = 354
Top = 196
Width = 486
HorzScrollBar.Page = 485
VertScrollBar.Page = 353
Caption = 'EditMsgScannersDialog'
ClientHeight = 354
ClientWidth = 486
OnCreate = FormCreate
OnDestroy = FormDestroy
LCLVersion = '0.9.25'
object ButtonPanel1: TButtonPanel
Left = 6
Height = 50
Top = 304
Width = 474
Align = alBottom
AutoSize = True
TabOrder = 0
ShowButtons = [pbOK, pbClose]
ShowGlyphs = [pbOK, pbCancel, pbClose, pbHelp]
end
object AvailableGroupBox: TGroupBox
Left = 301
Height = 304
Width = 185
Align = alRight
Caption = 'AvailableGroupBox'
ClientHeight = 285
ClientWidth = 181
TabOrder = 1
object AvailableListBox: TListBox
Height = 285
Width = 181
Align = alClient
TabOrder = 0
TopIndex = -1
end
end
object ScannersGroupBox: TGroupBox
Height = 304
Width = 257
Align = alClient
Caption = 'ScannersGroupBox'
ClientHeight = 285
ClientWidth = 253
TabOrder = 2
object ScannersListBox: TListBox
Height = 285
Width = 253
Align = alClient
TabOrder = 0
TopIndex = -1
end
end
object MoveBtnPanel: TPanel
Left = 257
Height = 304
Width = 39
Align = alRight
BevelOuter = bvNone
ClientHeight = 304
ClientWidth = 39
TabOrder = 3
object AddSpeedButton: TSpeedButton
Left = 8
Height = 22
Top = 84
Width = 23
Color = clBtnFace
NumGlyphs = 0
end
object RemoveSpeedButton: TSpeedButton
Left = 8
Height = 22
Top = 152
Width = 23
Color = clBtnFace
NumGlyphs = 0
end
end
object Splitter1: TSplitter
Left = 296
Height = 304
Width = 5
Align = alRight
ResizeAnchor = akRight
end
end

View File

@ -0,0 +1,29 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TEditMsgScannersDialog','FORMDATA',[
'TPF0'#22'TEditMsgScannersDialog'#21'EditMsgScannersDialog'#4'Left'#3'-'#1#6
+'Height'#3'b'#1#3'Top'#3#196#0#5'Width'#3#230#1#18'HorzScrollBar.Page'#3#229
+#1#18'VertScrollBar.Page'#3'a'#1#7'Caption'#6#21'EditMsgScannersDialog'#12'C'
+'lientHeight'#3'b'#1#11'ClientWidth'#3#230#1#8'OnCreate'#7#10'FormCreate'#9
+'OnDestroy'#7#11'FormDestroy'#10'LCLVersion'#6#6'0.9.25'#0#12'TButtonPanel'
+#12'ButtonPanel1'#4'Left'#2#6#6'Height'#2'2'#3'Top'#3'0'#1#5'Width'#3#218#1#5
+'Align'#7#8'alBottom'#8'AutoSize'#9#8'TabOrder'#2#0#11'ShowButtons'#11#4'pbO'
+'K'#7'pbClose'#0#10'ShowGlyphs'#11#4'pbOK'#8'pbCancel'#7'pbClose'#6'pbHelp'#0
+#0#0#9'TGroupBox'#17'AvailableGroupBox'#4'Left'#3'-'#1#6'Height'#3'0'#1#5'Wi'
+'dth'#3#185#0#5'Align'#7#7'alRight'#7'Caption'#6#17'AvailableGroupBox'#12'Cl'
+'ientHeight'#3#29#1#11'ClientWidth'#3#181#0#8'TabOrder'#2#1#0#8'TListBox'#16
+'AvailableListBox'#6'Height'#3#29#1#5'Width'#3#181#0#5'Align'#7#8'alClient'#8
+'TabOrder'#2#0#8'TopIndex'#2#255#0#0#0#9'TGroupBox'#16'ScannersGroupBox'#6'H'
+'eight'#3'0'#1#5'Width'#3#1#1#5'Align'#7#8'alClient'#7'Caption'#6#16'Scanner'
+'sGroupBox'#12'ClientHeight'#3#29#1#11'ClientWidth'#3#253#0#8'TabOrder'#2#2#0
+#8'TListBox'#15'ScannersListBox'#6'Height'#3#29#1#5'Width'#3#253#0#5'Align'#7
+#8'alClient'#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#0#6'TPanel'#12'MoveBtnPan'
+'el'#4'Left'#3#1#1#6'Height'#3'0'#1#5'Width'#2''''#5'Align'#7#7'alRight'#10
+'BevelOuter'#7#6'bvNone'#12'ClientHeight'#3'0'#1#11'ClientWidth'#2''''#8'Tab'
+'Order'#2#3#0#12'TSpeedButton'#14'AddSpeedButton'#4'Left'#2#8#6'Height'#2#22
+#3'Top'#2'T'#5'Width'#2#23#5'Color'#7#9'clBtnFace'#9'NumGlyphs'#2#0#0#0#12'T'
+'SpeedButton'#17'RemoveSpeedButton'#4'Left'#2#8#6'Height'#2#22#3'Top'#3#152#0
+#5'Width'#2#23#5'Color'#7#9'clBtnFace'#9'NumGlyphs'#2#0#0#0#0#9'TSplitter'#9
+'Splitter1'#4'Left'#3'('#1#6'Height'#3'0'#1#5'Width'#2#5#5'Align'#7#7'alRigh'
+'t'#12'ResizeAnchor'#7#7'akRight'#0#0#0
]);

128
ide/editmsgscannersdlg.pas Normal file
View File

@ -0,0 +1,128 @@
{
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************
Author: Mattias Gaertner
}
unit EditMsgScannersDlg;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
ButtonPanel, StdCtrls, ExtCtrls, Buttons,
IDEMsgIntf;
type
{ TEditMsgScannersDialog }
TEditMsgScannersDialog = class(TForm)
ButtonPanel1: TButtonPanel;
AvailableGroupBox: TGroupBox;
AvailableListBox: TListBox;
ScannersListBox: TListBox;
MoveBtnPanel: TPanel;
ScannersGroupBox: TGroupBox;
AddSpeedButton: TSpeedButton;
RemoveSpeedButton: TSpeedButton;
Splitter1: TSplitter;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FScanners: TStrings;
procedure SetScanners(const AValue: TStrings);
public
procedure FillAvailableListbox;
function IndexOfUsedScanner(const ScannerName: string): integer;
property Scanners: TStrings read FScanners write SetScanners;
end;
function ShowEditMsgScannersDialog(Scanners: TStrings): TModalResult;
implementation
function ShowEditMsgScannersDialog(Scanners: TStrings): TModalResult;
var
EditMsgScannersDialog: TEditMsgScannersDialog;
begin
EditMsgScannersDialog:=TEditMsgScannersDialog.Create(nil);
try
EditMsgScannersDialog.Scanners:=Scanners;
Result:=EditMsgScannersDialog.ModalResult;
if Result=mrOk then
Scanners.Assign(EditMsgScannersDialog.Scanners);
finally
EditMsgScannersDialog.Free;
end;
end;
{ TEditMsgScannersDialog }
procedure TEditMsgScannersDialog.FormCreate(Sender: TObject);
begin
FScanners:=TStringList.Create;
end;
procedure TEditMsgScannersDialog.FormDestroy(Sender: TObject);
begin
FreeAndNil(FScanners);
end;
procedure TEditMsgScannersDialog.SetScanners(const AValue: TStrings);
begin
if FScanners=AValue then exit;
FScanners.Assign(AValue);
ScannersListBox.Items.Assign(FScanners);
end;
procedure TEditMsgScannersDialog.FillAvailableListbox;
var
sl: TStringList;
i: Integer;
begin
sl:=TStringList.Create;
for i:=0 to IDEMsgScanners.Count-1 do begin
if IndexOfUsedScanner(IDEMsgScanners[i].Name)<0 then
sl.Add(IDEMsgScanners[i].ShortDescription);
end;
sl.Sort;
AvailableListBox.Items.Assign(sl);
sl.Free;
end;
function TEditMsgScannersDialog.IndexOfUsedScanner(const ScannerName: string
): integer;
begin
Result:=FScanners.Count;
while (Result>=0) do begin
if SysUtils.CompareText(ScannerName,FScanners[Result])=0 then exit;
dec(Result);
end;
end;
initialization
{$I editmsgscannersdlg.lrs}
end.

View File

@ -1,14 +1,14 @@
object ExternalToolOptionDlg: TExternalToolOptionDlg
Left = 670
Height = 489
Top = 274
Width = 560
HorzScrollBar.Page = 559
VertScrollBar.Page = 488
Left = 348
Height = 501
Top = 210
Width = 661
HorzScrollBar.Page = 660
VertScrollBar.Page = 500
ActiveControl = TitleEdit
Caption = 'ExternalToolOptionDlg'
ClientHeight = 489
ClientWidth = 560
ClientHeight = 501
ClientWidth = 661
Constraints.MinHeight = 350
Constraints.MinWidth = 350
KeyPreview = True
@ -16,6 +16,7 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
OnDestroy = FormDestroy
OnKeyUp = FormKeyUp
Position = poScreenCenter
LCLVersion = '0.9.25'
object TitleLabel: TLabel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = TitleEdit
@ -71,7 +72,7 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
Left = 128
Height = 23
Top = 6
Width = 426
Width = 527
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
TabOrder = 0
@ -85,7 +86,7 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
Left = 128
Height = 23
Top = 35
Width = 396
Width = 497
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
BorderSpacing.Right = 6
@ -98,7 +99,7 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = FilenameEdit
AnchorSideBottom.Side = asrBottom
Left = 530
Left = 631
Height = 23
Top = 35
Width = 24
@ -120,7 +121,7 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
Left = 128
Height = 23
Top = 64
Width = 426
Width = 527
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
BorderSpacing.Right = 6
@ -136,7 +137,7 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
Left = 128
Height = 23
Top = 93
Width = 426
Width = 527
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
BorderSpacing.Right = 6
@ -150,44 +151,41 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 6
Height = 77
Height = 92
Top = 122
Width = 548
Width = 649
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'OptionsGroupBox'
ClientHeight = 58
ClientWidth = 544
ChildSizing.Layout = cclTopToBottomThenLeftToRight
ChildSizing.ControlsPerLine = 5
ClientHeight = 73
ClientWidth = 645
TabOrder = 5
object OptionScanOutputForFPCMessagesCheckBox: TCheckBox
AnchorSideLeft.Control = OptionsGroupBox
AnchorSideTop.Control = OptionsGroupBox
Left = 6
Height = 22
Top = 2
Width = 313
BorderSpacing.Left = 6
BorderSpacing.Top = 2
Width = 323
Caption = 'OptionScanOutputForFPCMessagesCheckBox'
TabOrder = 0
end
object OptionScanOutputForMakeMessagesCheckBox: TCheckBox
AnchorSideLeft.Control = OptionScanOutputForFPCMessagesCheckBox
AnchorSideTop.Control = OptionScanOutputForFPCMessagesCheckBox
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = OptionsGroupBox
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 22
Top = 30
Top = 22
Width = 323
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.Top = 6
BorderSpacing.Bottom = 6
Caption = 'OptionScanOutputForMakeMessagesCheckBox'
TabOrder = 1
end
object ScannersButton: TButton
Height = 29
Top = 44
Width = 323
Caption = 'ScannersButton'
OnClick = ScannersButtonClick
TabOrder = 2
end
end
object KeyGroupBox: TGroupBox
AnchorSideLeft.Control = OptionsGroupBox
@ -197,14 +195,14 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
AnchorSideRight.Side = asrBottom
Left = 6
Height = 49
Top = 205
Width = 548
Top = 220
Width = 649
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
Caption = 'KeyGroupBox'
ClientHeight = 30
ClientWidth = 544
ClientWidth = 645
TabOrder = 6
object KeyCtrlCheckBox: TCheckBox
AnchorSideLeft.Control = KeyGroupBox
@ -253,9 +251,9 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = KeyGrabButton
Left = 419
Height = 21
Top = 3
Width = 5
Height = 29
Top = -1
Width = 106
Anchors = [akTop, akLeft, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
BorderSpacing.Left = 6
@ -270,7 +268,7 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
AnchorSideRight.Control = KeyGroupBox
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 430
Left = 531
Height = 29
Top = -2
Width = 108
@ -291,14 +289,14 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = BtnPanel
Left = 6
Height = 174
Top = 260
Width = 548
Height = 172
Top = 275
Width = 649
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
Caption = 'MacrosGroupbox'
ClientHeight = 155
ClientWidth = 544
ClientHeight = 153
ClientWidth = 645
TabOrder = 7
object MacrosListbox: TListBox
AnchorSideLeft.Control = MacrosGroupbox
@ -307,9 +305,9 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
AnchorSideBottom.Control = MacrosGroupbox
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 147
Height = 145
Top = 2
Width = 389
Width = 490
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Right = 6
@ -322,7 +320,7 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
AnchorSideTop.Control = MacrosGroupbox
AnchorSideRight.Control = MacrosGroupbox
AnchorSideRight.Side = asrBottom
Left = 401
Left = 502
Height = 29
Top = 2
Width = 137
@ -337,20 +335,20 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
end
end
object BtnPanel: TPanel
Height = 49
Top = 440
Width = 560
Height = 48
Top = 453
Width = 661
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 49
ClientWidth = 560
ClientHeight = 48
ClientWidth = 661
TabOrder = 8
object OKButton: TBitBtn
AnchorSideBottom.Side = asrBottom
Left = 399
Height = 35
Top = 7
Left = 501
Height = 36
Top = 6
Width = 73
Align = alRight
BorderSpacing.Around = 6
@ -365,9 +363,9 @@ object ExternalToolOptionDlg: TExternalToolOptionDlg
object CancelButton: TBitBtn
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 478
Height = 35
Top = 7
Left = 580
Height = 36
Top = 6
Width = 75
Align = alRight
BorderSpacing.Around = 6

View File

@ -1,139 +1,137 @@
{ Ýòî - ôàéë ðåñóðñîâ, àâòîìàòè÷åñêè ñîçäàííûé lazarus }
LazarusResources.Add('TExternalToolOptionDlg','FORMDATA',[
'TPF0'#22'TExternalToolOptionDlg'#21'ExternalToolOptionDlg'#4'Left'#3#158#2#6
+'Height'#3#233#1#3'Top'#3#18#1#5'Width'#3'0'#2#18'HorzScrollBar.Page'#3'/'#2
+#18'VertScrollBar.Page'#3#232#1#13'ActiveControl'#7#9'TitleEdit'#7'Caption'#6
+#21'ExternalToolOptionDlg'#12'ClientHeight'#3#233#1#11'ClientWidth'#3'0'#2#21
+'Constraints.MinHeight'#3'^'#1#20'Constraints.MinWidth'#3'^'#1#10'KeyPreview'
+#9#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy'#7'OnKeyUp'#7#9
+'FormKeyUp'#8'Position'#7#14'poScreenCenter'#0#6'TLabel'#10'TitleLabel'#22'A'
+'nchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#9'TitleEdit'
+#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#20#3'Top'#2#7
+#5'Width'#2'='#18'BorderSpacing.Left'#2#6#7'Caption'#6#10'TitleLabel'#11'Par'
+'entColor'#8#0#0#6'TLabel'#13'FilenameLabel'#22'AnchorSideLeft.Control'#7#5
+'Owner'#21'AnchorSideTop.Control'#7#12'FilenameEdit'#18'AnchorSideTop.Side'#7
+#9'asrCenter'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'$'#5'Width'#2'\'#18'Border'
+'Spacing.Left'#2#6#7'Caption'#6#13'FilenameLabel'#11'ParentColor'#8#0#0#6'TL'
+'abel'#15'ParametersLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSi'
+'deTop.Control'#7#14'ParametersEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4
+'Left'#2#6#6'Height'#2#20#3'Top'#2'A'#5'Width'#2'm'#18'BorderSpacing.Left'#2
+#6#7'Caption'#6#15'ParametersLabel'#11'ParentColor'#8#0#0#6'TLabel'#15'Worki'
+'ngDirLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'
+#7#14'WorkingDirEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'He'
+'ight'#2#20#3'Top'#2'^'#5'Width'#2'f'#18'BorderSpacing.Left'#2#6#7'Caption'#6
+#15'WorkingDirLabel'#11'ParentColor'#8#0#0#5'TEdit'#9'TitleEdit'#21'AnchorSi'
+'deTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorS'
+'ideRight.Side'#7#9'asrBottom'#4'Left'#3#128#0#6'Height'#2#23#3'Top'#2#6#5'W'
+'idth'#3#170#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacin'
+'g.Around'#2#6#8'TabOrder'#2#0#4'Text'#6#9'TitleEdit'#0#0#5'TEdit'#12'Filena'
+'meEdit'#22'AnchorSideLeft.Control'#7#9'TitleEdit'#21'AnchorSideTop.Control'
+#7#9'TitleEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Con'
+'trol'#7#10'OpenButton'#4'Left'#3#128#0#6'Height'#2#23#3'Top'#2'#'#5'Width'#3
+#140#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2
+#6#19'BorderSpacing.Right'#2#6#8'TabOrder'#2#1#4'Text'#6#12'FilenameEdit'#0#0
+#7'TButton'#10'OpenButton'#21'AnchorSideTop.Control'#7#12'FilenameEdit'#23'A'
+'nchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'
+#24'AnchorSideBottom.Control'#7#12'FilenameEdit'#21'AnchorSideBottom.Side'#7
+#9'asrBottom'#4'Left'#3#18#2#6'Height'#2#23#3'Top'#2'#'#5'Width'#2#24#7'Anch'
+'ors'#11#5'akTop'#7'akRight'#8'akBottom'#0#8'AutoSize'#9#19'BorderSpacing.Ri'
+'ght'#2#6#7'Caption'#6#3'...'#7'OnClick'#7#15'OpenButtonClick'#14'ParentShow'
+'Hint'#8#8'ShowHint'#9#8'TabOrder'#2#2#0#0#5'TEdit'#14'ParametersEdit'#22'An'
+'chorSideLeft.Control'#7#9'TitleEdit'#21'AnchorSideTop.Control'#7#12'Filenam'
+'eEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5
+'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#128#0#6'Height'#2
+#23#3'Top'#2'@'#5'Width'#3#170#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'
+#0#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrder'#2#3#4'T'
+'ext'#6#14'ParametersEdit'#0#0#5'TEdit'#14'WorkingDirEdit'#22'AnchorSideLeft'
+'.Control'#7#9'TitleEdit'#21'AnchorSideTop.Control'#7#14'ParametersEdit'#18
+'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20
+'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#128#0#6'Height'#2#23#3'Top'#2
+']'#5'Width'#3#170#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'Border'
+'Spacing.Top'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrder'#2#4#4'Text'#6#14'W'
+'orkingDirEdit'#0#0#9'TGroupBox'#15'OptionsGroupBox'#22'AnchorSideLeft.Contr'
+'ol'#7#5'Owner'#21'AnchorSideTop.Control'#7#14'WorkingDirEdit'#18'AnchorSide'
+'Top.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSi'
+'deRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'M'#3'Top'#2'z'#5'Width'
+#3'$'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#20'Borde'
+'rSpacing.Around'#2#6#7'Caption'#6#15'OptionsGroupBox'#12'ClientHeight'#2':'
+#11'ClientWidth'#3' '#2#8'TabOrder'#2#5#0#9'TCheckBox&OptionScanOutputForFPC'
+'MessagesCheckBox'#22'AnchorSideLeft.Control'#7#15'OptionsGroupBox'#21'Ancho'
+'rSideTop.Control'#7#15'OptionsGroupBox'#4'Left'#2#6#6'Height'#2#22#3'Top'#2
+#2#5'Width'#3'9'#1#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#2#7'Ca'
+'ption'#6'&OptionScanOutputForFPCMessagesCheckBox'#8'TabOrder'#2#0#0#0#9'TCh'
+'eckBox''OptionScanOutputForMakeMessagesCheckBox'#22'AnchorSideLeft.Control'
+#7'&OptionScanOutputForFPCMessagesCheckBox'#21'AnchorSideTop.Control'#7'&Opt'
+'ionScanOutputForFPCMessagesCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'
+#24'AnchorSideBottom.Control'#7#15'OptionsGroupBox'#21'AnchorSideBottom.Side'
,#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#30#5'Width'#3'C'#1#7'Anc'
+'hors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#17'BorderSpacing.Top'#2#6#20'Bord'
+'erSpacing.Bottom'#2#6#7'Caption'#6'''OptionScanOutputForMakeMessagesCheckBo'
+'x'#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#11'KeyGroupBox'#22'AnchorSideLeft.Con'
+'trol'#7#15'OptionsGroupBox'#21'AnchorSideTop.Control'#7#15'OptionsGroupBox'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#15'Opti'
+'onsGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2
+'1'#3'Top'#3#205#0#5'Width'#3'$'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRigh'
+'t'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#6#7'Caption'#6#11'KeyGroupBox'#12
+'ClientHeight'#2#30#11'ClientWidth'#3' '#2#8'TabOrder'#2#6#0#9'TCheckBox'#15
+'KeyCtrlCheckBox'#22'AnchorSideLeft.Control'#7#11'KeyGroupBox'#21'AnchorSide'
+'Top.Control'#7#11'KeyGroupBox'#24'AnchorSideBottom.Control'#7#11'KeyGroupBo'
+'x'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#22#3'To'
+'p'#2#2#5'Width'#3#131#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'B'
+'orderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#2#20'BorderSpacing.Bottom'#2
+#6#7'Caption'#6#15'KeyCtrlCheckBox'#8'TabOrder'#2#0#0#0#9'TCheckBox'#14'KeyA'
+'ltCheckBox'#22'AnchorSideLeft.Control'#7#15'KeyCtrlCheckBox'#19'AnchorSideL'
+'eft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15'KeyCtrlCheckBox'#4
+'Left'#3#143#0#6'Height'#2#22#3'Top'#2#2#5'Width'#2'~'#18'BorderSpacing.Left'
+#2#6#7'Caption'#6#14'KeyAltCheckBox'#8'TabOrder'#2#1#0#0#9'TCheckBox'#16'Key'
+'ShiftCheckBox'#22'AnchorSideLeft.Control'#7#14'KeyAltCheckBox'#19'AnchorSid'
+'eLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15'KeyCtrlCheckBox'#4
+'Left'#3#19#1#6'Height'#2#22#3'Top'#2#2#5'Width'#3#138#0#18'BorderSpacing.Le'
+'ft'#2#6#7'Caption'#6#16'KeyShiftCheckBox'#8'TabOrder'#2#2#0#0#9'TComboBox'
+#11'KeyComboBox'#22'AnchorSideLeft.Control'#7#16'KeyShiftCheckBox'#19'Anchor'
+'SideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15'KeyCtrlCheckBo'
+'x'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#13'K'
+'eyGrabButton'#4'Left'#3#163#1#6'Height'#2#21#3'Top'#2#3#5'Width'#2#5#7'Anch'
+'ors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEnd'
+'OfLineComplete'#20'cbactSearchAscending'#0#18'BorderSpacing.Left'#2#6#19'Bo'
+'rderSpacing.Right'#2#6#9'MaxLength'#2#0#8'TabOrder'#2#3#4'Text'#6#11'KeyCom'
+'boBox'#0#0#7'TButton'#13'KeyGrabButton'#21'AnchorSideTop.Control'#7#15'KeyC'
+'trlCheckBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Contr'
+'ol'#7#11'KeyGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSide'
+'Bottom.Side'#7#9'asrBottom'#4'Left'#3#174#1#6'Height'#2#29#3'Top'#2#254#5'W'
+'idth'#2'l'#7'Anchors'#11#7'akRight'#0#8'AutoSize'#9#18'BorderSpacing.Left'#2
+#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#13'KeyGrabButton'#7'OnClick'#7#18
+'KeyGrabButtonClick'#8'TabOrder'#2#4#0#0#0#9'TGroupBox'#14'MacrosGroupbox'#22
+'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#11'KeyGroupB'
+'ox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'O'
+'wner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7
+#8'BtnPanel'#4'Left'#2#6#6'Height'#3#174#0#3'Top'#3#4#1#5'Width'#3'$'#2#7'An'
+'chors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Arou'
+'nd'#2#6#7'Caption'#6#14'MacrosGroupbox'#12'ClientHeight'#3#155#0#11'ClientW'
+'idth'#3' '#2#8'TabOrder'#2#7#0#8'TListBox'#13'MacrosListbox'#22'AnchorSideL'
+'eft.Control'#7#14'MacrosGroupbox'#21'AnchorSideTop.Control'#7#18'MacrosInse'
+'rtButton'#23'AnchorSideRight.Control'#7#18'MacrosInsertButton'#24'AnchorSid'
+'eBottom.Control'#7#14'MacrosGroupbox'#21'AnchorSideBottom.Side'#7#9'asrBott'
+'om'#4'Left'#2#6#6'Height'#3#147#0#3'Top'#2#2#5'Width'#3#133#1#7'Anchors'#11
+#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#6#19'B'
+'orderSpacing.Right'#2#6#20'BorderSpacing.Bottom'#2#6#7'OnClick'#7#18'Macros'
+'ListboxClick'#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#7'TButton'#18'MacrosIns'
+'ertButton'#21'AnchorSideTop.Control'#7#14'MacrosGroupbox'#23'AnchorSideRigh'
+'t.Control'#7#14'MacrosGroupbox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'L'
+'eft'#3#145#1#6'Height'#2#29#3'Top'#2#2#5'Width'#3#137#0#7'Anchors'#11#5'akT'
+'op'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#2#19'BorderSpacing.R'
+'ight'#2#6#7'Caption'#6#18'MacrosInsertButton'#7'Enabled'#8#7'OnClick'#7#23
+'MacrosInsertButtonClick'#8'TabOrder'#2#1#0#0#0#6'TPanel'#8'BtnPanel'#6'Heig'
+'ht'#2'1'#3'Top'#3#184#1#5'Width'#3'0'#2#5'Align'#7#8'alBottom'#8'AutoSize'#9
+#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'1'#11'ClientWidth'#3'0'#2#8'T'
+'abOrder'#2#8#0#7'TBitBtn'#8'OKButton'#21'AnchorSideBottom.Side'#7#9'asrBott'
+'om'#4'Left'#3#143#1#6'Height'#2'#'#3'Top'#2#7#5'Width'#2'I'#5'Align'#7#7'al'
+'Right'#20'BorderSpacing.Around'#2#6#7'Caption'#6#2'Ok'#7'Default'#9#4'Kind'
+#7#4'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#13'OKButtonClic'
,'k'#8'TabOrder'#2#0#0#0#7'TBitBtn'#12'CancelButton'#20'AnchorSideRight.Side'
+#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#222#1#6'H'
+'eight'#2'#'#3'Top'#2#7#5'Width'#2'K'#5'Align'#7#7'alRight'#20'BorderSpacing'
+'.Around'#2#6#6'Cancel'#9#7'Caption'#6#6'Cancel'#4'Kind'#7#8'bkCancel'#11'Mo'
+'dalResult'#2#2#9'NumGlyphs'#2#0#8'TabOrder'#2#1#0#0#0#11'TOpenDialog'#10'Op'
+'enDialog'#7'Options'#11#15'ofPathMustExist'#15'ofFileMustExist'#14'ofEnable'
+'Sizing'#12'ofViewDetail'#0#4'left'#2'X'#3'top'#2' '#0#0#0
'TPF0'#22'TExternalToolOptionDlg'#21'ExternalToolOptionDlg'#4'Left'#3'\'#1#6
+'Height'#3#245#1#3'Top'#3#210#0#5'Width'#3#149#2#18'HorzScrollBar.Page'#3#148
+#2#18'VertScrollBar.Page'#3#244#1#13'ActiveControl'#7#9'TitleEdit'#7'Caption'
+#6#21'ExternalToolOptionDlg'#12'ClientHeight'#3#245#1#11'ClientWidth'#3#149#2
+#21'Constraints.MinHeight'#3'^'#1#20'Constraints.MinWidth'#3'^'#1#10'KeyPrev'
+'iew'#9#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy'#7'OnKeyU'
+'p'#7#9'FormKeyUp'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.2'
+'5'#0#6'TLabel'#10'TitleLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anch'
+'orSideTop.Control'#7#9'TitleEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'L'
+'eft'#2#6#6'Height'#2#20#3'Top'#2#7#5'Width'#2'='#18'BorderSpacing.Left'#2#6
+#7'Caption'#6#10'TitleLabel'#11'ParentColor'#8#0#0#6'TLabel'#13'FilenameLabe'
+'l'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#12'Fil'
+'enameEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#20
+#3'Top'#2'$'#5'Width'#2'\'#18'BorderSpacing.Left'#2#6#7'Caption'#6#13'Filena'
+'meLabel'#11'ParentColor'#8#0#0#6'TLabel'#15'ParametersLabel'#22'AnchorSideL'
+'eft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#14'ParametersEdit'#18'A'
+'nchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'A'#5
+'Width'#2'm'#18'BorderSpacing.Left'#2#6#7'Caption'#6#15'ParametersLabel'#11
+'ParentColor'#8#0#0#6'TLabel'#15'WorkingDirLabel'#22'AnchorSideLeft.Control'
+#7#5'Owner'#21'AnchorSideTop.Control'#7#14'WorkingDirEdit'#18'AnchorSideTop.'
+'Side'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'^'#5'Width'#2'f'#18
+'BorderSpacing.Left'#2#6#7'Caption'#6#15'WorkingDirLabel'#11'ParentColor'#8#0
+#0#5'TEdit'#9'TitleEdit'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideR'
+'ight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3
+#128#0#6'Height'#2#23#3'Top'#2#6#5'Width'#3#15#2#7'Anchors'#11#5'akTop'#6'ak'
+'Left'#7'akRight'#0#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#0#4'Text'#6#9
+'TitleEdit'#0#0#5'TEdit'#12'FilenameEdit'#22'AnchorSideLeft.Control'#7#9'Tit'
+'leEdit'#21'AnchorSideTop.Control'#7#9'TitleEdit'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#23'AnchorSideRight.Control'#7#10'OpenButton'#4'Left'#3#128#0#6'H'
+'eight'#2#23#3'Top'#2'#'#5'Width'#3#241#1#7'Anchors'#11#5'akTop'#6'akLeft'#7
+'akRight'#0#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrder'
+#2#1#4'Text'#6#12'FilenameEdit'#0#0#7'TButton'#10'OpenButton'#21'AnchorSideT'
+'op.Control'#7#12'FilenameEdit'#23'AnchorSideRight.Control'#7#5'Owner'#20'An'
+'chorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'Filena'
+'meEdit'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'w'#2#6'Height'#2
+#23#3'Top'#2'#'#5'Width'#2#24#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0
+#8'AutoSize'#9#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'OnClick'#7
+#15'OpenButtonClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#2#0#0#5
+'TEdit'#14'ParametersEdit'#22'AnchorSideLeft.Control'#7#9'TitleEdit'#21'Anch'
+'orSideTop.Control'#7#12'FilenameEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'
+#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBott'
+'om'#4'Left'#3#128#0#6'Height'#2#23#3'Top'#2'@'#5'Width'#3#15#2#7'Anchors'#11
+#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#6#19'BorderSpacing.'
+'Right'#2#6#8'TabOrder'#2#3#4'Text'#6#14'ParametersEdit'#0#0#5'TEdit'#14'Wor'
+'kingDirEdit'#22'AnchorSideLeft.Control'#7#9'TitleEdit'#21'AnchorSideTop.Con'
+'trol'#7#14'ParametersEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorS'
+'ideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'
+#3#128#0#6'Height'#2#23#3'Top'#2']'#5'Width'#3#15#2#7'Anchors'#11#5'akTop'#6
+'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#8
+'TabOrder'#2#4#4'Text'#6#14'WorkingDirEdit'#0#0#9'TGroupBox'#15'OptionsGroup'
+'Box'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#14'W'
+'orkingDirEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Con'
+'trol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Heig'
+'ht'#2'\'#3'Top'#2'z'#5'Width'#3#137#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'ak'
+'Right'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#15'Options'
+'GroupBox'#18'ChildSizing.Layout'#7#29'cclTopToBottomThenLeftToRight'#27'Chi'
+'ldSizing.ControlsPerLine'#2#5#12'ClientHeight'#2'I'#11'ClientWidth'#3#133#2
+#8'TabOrder'#2#5#0#9'TCheckBox&OptionScanOutputForFPCMessagesCheckBox'#6'Hei'
+'ght'#2#22#5'Width'#3'C'#1#7'Caption'#6'&OptionScanOutputForFPCMessagesCheck'
+'Box'#8'TabOrder'#2#0#0#0#9'TCheckBox''OptionScanOutputForMakeMessagesCheckB'
+'ox'#18'AnchorSideTop.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asr'
+'Bottom'#6'Height'#2#22#3'Top'#2#22#5'Width'#3'C'#1#7'Caption'#6'''OptionSca'
+'nOutputForMakeMessagesCheckBox'#8'TabOrder'#2#1#0#0#7'TButton'#14'ScannersB'
+'utton'#6'Height'#2#29#3'Top'#2','#5'Width'#3'C'#1#7'Caption'#6#14'ScannersB'
,'utton'#7'OnClick'#7#19'ScannersButtonClick'#8'TabOrder'#2#2#0#0#0#9'TGroupB'
+'ox'#11'KeyGroupBox'#22'AnchorSideLeft.Control'#7#15'OptionsGroupBox'#21'Anc'
+'horSideTop.Control'#7#15'OptionsGroupBox'#18'AnchorSideTop.Side'#7#9'asrBot'
+'tom'#23'AnchorSideRight.Control'#7#15'OptionsGroupBox'#20'AnchorSideRight.S'
+'ide'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'1'#3'Top'#3#220#0#5'Width'#3#137
+#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpac'
+'ing.Top'#2#6#7'Caption'#6#11'KeyGroupBox'#12'ClientHeight'#2#30#11'ClientWi'
+'dth'#3#133#2#8'TabOrder'#2#6#0#9'TCheckBox'#15'KeyCtrlCheckBox'#22'AnchorSi'
+'deLeft.Control'#7#11'KeyGroupBox'#21'AnchorSideTop.Control'#7#11'KeyGroupBo'
+'x'#24'AnchorSideBottom.Control'#7#11'KeyGroupBox'#21'AnchorSideBottom.Side'
+#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#22#3'Top'#2#2#5'Width'#3#131#0#7'Anc'
+'hors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#6#17'Bor'
+'derSpacing.Top'#2#2#20'BorderSpacing.Bottom'#2#6#7'Caption'#6#15'KeyCtrlChe'
+'ckBox'#8'TabOrder'#2#0#0#0#9'TCheckBox'#14'KeyAltCheckBox'#22'AnchorSideLef'
+'t.Control'#7#15'KeyCtrlCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21
+'AnchorSideTop.Control'#7#15'KeyCtrlCheckBox'#4'Left'#3#143#0#6'Height'#2#22
+#3'Top'#2#2#5'Width'#2'~'#18'BorderSpacing.Left'#2#6#7'Caption'#6#14'KeyAltC'
+'heckBox'#8'TabOrder'#2#1#0#0#9'TCheckBox'#16'KeyShiftCheckBox'#22'AnchorSid'
+'eLeft.Control'#7#14'KeyAltCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'
+#21'AnchorSideTop.Control'#7#15'KeyCtrlCheckBox'#4'Left'#3#19#1#6'Height'#2
+#22#3'Top'#2#2#5'Width'#3#138#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#16'K'
+'eyShiftCheckBox'#8'TabOrder'#2#2#0#0#9'TComboBox'#11'KeyComboBox'#22'Anchor'
+'SideLeft.Control'#7#16'KeyShiftCheckBox'#19'AnchorSideLeft.Side'#7#9'asrBot'
+'tom'#21'AnchorSideTop.Control'#7#15'KeyCtrlCheckBox'#18'AnchorSideTop.Side'
+#7#9'asrCenter'#23'AnchorSideRight.Control'#7#13'KeyGrabButton'#4'Left'#3#163
+#1#6'Height'#2#29#3'Top'#2#255#5'Width'#2'j'#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSea'
+'rchAscending'#0#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2#6#9'Ma'
+'xLength'#2#0#8'TabOrder'#2#3#4'Text'#6#11'KeyComboBox'#0#0#7'TButton'#13'Ke'
+'yGrabButton'#21'AnchorSideTop.Control'#7#15'KeyCtrlCheckBox'#18'AnchorSideT'
+'op.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#11'KeyGroupBox'#20'An'
+'chorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'
+#4'Left'#3#19#2#6'Height'#2#29#3'Top'#2#254#5'Width'#2'l'#7'Anchors'#11#7'ak'
+'Right'#0#8'AutoSize'#9#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2
+#6#7'Caption'#6#13'KeyGrabButton'#7'OnClick'#7#18'KeyGrabButtonClick'#8'TabO'
+'rder'#2#4#0#0#0#9'TGroupBox'#14'MacrosGroupbox'#22'AnchorSideLeft.Control'#7
+#5'Owner'#21'AnchorSideTop.Control'#7#11'KeyGroupBox'#18'AnchorSideTop.Side'
+#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Si'
+'de'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#8'BtnPanel'#4'Left'#2#6#6
+'Height'#3#172#0#3'Top'#3#19#1#5'Width'#3#137#2#7'Anchors'#11#5'akTop'#6'akL'
+'eft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#14
+'MacrosGroupbox'#12'ClientHeight'#3#153#0#11'ClientWidth'#3#133#2#8'TabOrder'
+#2#7#0#8'TListBox'#13'MacrosListbox'#22'AnchorSideLeft.Control'#7#14'MacrosG'
+'roupbox'#21'AnchorSideTop.Control'#7#18'MacrosInsertButton'#23'AnchorSideRi'
+'ght.Control'#7#18'MacrosInsertButton'#24'AnchorSideBottom.Control'#7#14'Mac'
+'rosGroupbox'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'
+#3#145#0#3'Top'#2#2#5'Width'#3#234#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRi'
+'ght'#8'akBottom'#0#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2#6#20
+'BorderSpacing.Bottom'#2#6#7'OnClick'#7#18'MacrosListboxClick'#8'TabOrder'#2
+#0#8'TopIndex'#2#255#0#0#7'TButton'#18'MacrosInsertButton'#21'AnchorSideTop.'
+'Control'#7#14'MacrosGroupbox'#23'AnchorSideRight.Control'#7#14'MacrosGroupb'
+'ox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#246#1#6'Height'#2#29#3
+'Top'#2#2#5'Width'#3#137#0#7'Anchors'#11#5'akTop'#7'akRight'#0#8'AutoSize'#9
+#17'BorderSpacing.Top'#2#2#19'BorderSpacing.Right'#2#6#7'Caption'#6#18'Macro'
+'sInsertButton'#7'Enabled'#8#7'OnClick'#7#23'MacrosInsertButtonClick'#8'TabO'
+'rder'#2#1#0#0#0#6'TPanel'#8'BtnPanel'#6'Height'#2'0'#3'Top'#3#197#1#5'Width'
+#3#149#2#5'Align'#7#8'alBottom'#8'AutoSize'#9#10'BevelOuter'#7#6'bvNone'#12
+'ClientHeight'#2'0'#11'ClientWidth'#3#149#2#8'TabOrder'#2#8#0#7'TBitBtn'#8'O'
+'KButton'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#245#1#6'Height'
+#2'$'#3'Top'#2#6#5'Width'#2'I'#5'Align'#7#7'alRight'#20'BorderSpacing.Around'
+#2#6#7'Caption'#6#2'Ok'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9
+'NumGlyphs'#2#0#7'OnClick'#7#13'OKButtonClick'#8'TabOrder'#2#0#0#0#7'TBitBtn'
+#12'CancelButton'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBotto'
+'m.Side'#7#9'asrBottom'#4'Left'#3'D'#2#6'Height'#2'$'#3'Top'#2#6#5'Width'#2
,'K'#5'Align'#7#7'alRight'#20'BorderSpacing.Around'#2#6#6'Cancel'#9#7'Caption'
+#6#6'Cancel'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'NumGlyphs'#2#0#8'Ta'
+'bOrder'#2#1#0#0#0#11'TOpenDialog'#10'OpenDialog'#7'Options'#11#15'ofPathMus'
+'tExist'#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#2
+'X'#3'top'#2' '#0#0#0
]);

View File

@ -43,9 +43,9 @@ uses
MemCheck,
{$ENDIF}
Classes, SysUtils, LCLType, Controls, Forms, Buttons, StdCtrls, ComCtrls,
Dialogs, LResources,
IDEExternToolIntf,
KeyMapping, TransferMacros, LazarusIDEStrConsts, ExtCtrls;
Dialogs, LResources, ExtCtrls,
IDEMsgIntf, IDEExternToolIntf,
KeyMapping, TransferMacros, LazarusIDEStrConsts, EditMsgScannersDlg;
type
{ TExternalToolOptions }
@ -62,14 +62,12 @@ type
property Shift: TShiftState read fShift write fShift;
end;
{
the editor dialog for a single external tool
}
{ TExternalToolOptionDlg }
{ TExternalToolOptionDlg -
the editor dialog for a single external tool}
TExternalToolOptionDlg = class(TForm)
BtnPanel: TPanel;
ScannersButton: TButton;
TitleLabel: TLabel;
TitleEdit: TEdit;
FilenameLabel: TLabel;
@ -102,15 +100,19 @@ type
procedure MacrosListboxClick(Sender: TObject);
procedure OKButtonClick(Sender: TObject);
procedure OpenButtonClick(sender : TOBject);
procedure ScannersButtonClick(Sender: TObject);
private
fOptions: TExternalToolOptions;
fTransferMacros: TTransferMacroList;
fScanners: TStrings;
GrabbingKey: integer; // 0=none, 1=Default key
procedure ActivateGrabbing(AGrabbingKey: integer);
procedure DeactivateGrabbing;
procedure FillMacroList;
procedure LoadFromOptions;
procedure SaveToOptions;
procedure UpdateButtons;
function ScannersToString(List: TStrings): string;
procedure SetComboBox(AComboBox: TComboBox; const AValue: string);
procedure SetOptions(TheOptions: TExternalToolOptions);
procedure SetTransferMacros(TransferMacroList: TTransferMacroList);
@ -152,6 +154,12 @@ begin
If OpenDialog.Execute Then FilenameEdit.Text := OpenDialog.FileName;
End;
procedure TExternalToolOptionDlg.ScannersButtonClick(Sender: TObject);
begin
if ShowEditMsgScannersDialog(fScanners)=mrOk then
UpdateButtons;
end;
procedure TExternalToolOptionDlg.SaveToOptions;
begin
fOptions.Title:=TitleEdit.Text;
@ -172,6 +180,37 @@ begin
OptionScanOutputForFPCMessagesCheckBox.Checked;
fOptions.ScanOutputForMakeMessages:=
OptionScanOutputForMakeMessagesCheckBox.Checked;
fOptions.Scanners:=fScanners;
end;
procedure TExternalToolOptionDlg.UpdateButtons;
begin
if IDEMsgScanners.Count>0 then begin
ScannersButton.Visible:=true;
ScannersButton.Caption:='Edit custom scanners ('+ScannersToString(fScanners)+')';
end else begin
ScannersButton.Visible:=false;
end;
end;
function TExternalToolOptionDlg.ScannersToString(List: TStrings): string;
var
i: Integer;
begin
if (List=nil) or (List.Count=0) then begin
Result:='none';
end else begin
Result:='';
for i:=0 to List.Count-1 do begin
if Result<>'' then
Result:=Result+',';
Result:=Result+List[i];
if length(Result)>20 then begin
Result:=copy(Result,1,20);
break;
end;
end;
end;
end;
procedure TExternalToolOptionDlg.LoadFromOptions;
@ -188,6 +227,8 @@ begin
fOptions.ScanOutputForFPCMessages;
OptionScanOutputForMakeMessagesCheckBox.Checked:=
fOptions.ScanOutputForMakeMessages;
fScanners.Assign(fOptions.Scanners);
UpdateButtons;
end;
procedure TExternalToolOptionDlg.FormCreate(Sender: TObject);
@ -195,6 +236,7 @@ var
i: word;
s: string;
begin
fScanners:=TStringList.Create;
GrabbingKey:=0;
Caption:=lisEdtExtToolEditTool;
@ -262,7 +304,8 @@ end;
procedure TExternalToolOptionDlg.FormDestroy(Sender: TObject);
begin
fOptions.Free;
FreeAndNil(fOptions);
FreeAndNil(fScanners);
end;
procedure TExternalToolOptionDlg.KeyGrabButtonClick(Sender: TObject);

View File

@ -1,4 +1,3 @@
{ $Id$ }
{
/***************************************************************************
outputfilter.pas - Lazarus IDE unit

View File

@ -77,6 +77,7 @@ type
FShowAllOutput: boolean;
fTitle: string;
fWorkingDirectory: string;
procedure SetScanners(const AValue: TStrings);
procedure SetScanOutput(const AValue: boolean);
procedure SetShowAllOutput(const AValue: boolean);
public
@ -104,7 +105,7 @@ type
property ScanOutput: boolean read FScanOutput write SetScanOutput;
property ShowAllOutput: boolean read FShowAllOutput write SetShowAllOutput;
property OnParseLine: TOnIDEExtToolParseLine read FOnParseLine write FOnParseLine;
property Scanners: TStrings read FScanners;
property Scanners: TStrings read FScanners write SetScanners;
end;
type
@ -123,6 +124,12 @@ begin
FScanOutput:=AValue;
end;
procedure TIDEExternalToolOptions.SetScanners(const AValue: TStrings);
begin
if FScanners=AValue then exit;
FScanners.Assign(AValue);
end;
procedure TIDEExternalToolOptions.SetShowAllOutput(const AValue: boolean);
begin
if FShowAllOutput=AValue then exit;

View File

@ -618,9 +618,9 @@ destructor TIDEMsgScanners.Destroy;
var
i: Integer;
begin
for i:=0 to fTypes.Count do TObject(fTypes[i]).Free;
for i:=0 to fTypes.Count-1 do TObject(fTypes[i]).Free;
FreeAndNil(fTypes);
for i:=0 to fScanners.Count do TObject(fScanners[i]).Free;
for i:=0 to fScanners.Count-1 do TObject(fScanners[i]).Free;
FreeAndNil(fScanners);
inherited Destroy;
end;