ide: start project icon

- add project icon interface to ProjectOptions dialog
  - save/restore project icon from project options file (lpi)

git-svn-id: trunk@16878 -
This commit is contained in:
paul 2008-10-05 09:20:36 +00:00
parent ddea740b16
commit bb55537667
6 changed files with 523 additions and 296 deletions

View File

@ -1477,6 +1477,11 @@ resourcestring
dlgPOUseAppBundle = 'Use Application Bundle for running and debugging (darwin only)'; dlgPOUseAppBundle = 'Use Application Bundle for running and debugging (darwin only)';
dlgPOCreateAppBundle = 'Create Application Bundle'; dlgPOCreateAppBundle = 'Create Application Bundle';
dlgPOUseManifest = 'Use manifest file to enable themes (windows only)'; dlgPOUseManifest = 'Use manifest file to enable themes (windows only)';
dlgPOIcon = 'Icon:';
dlgPOLoadIcon = 'Load Icon';
dlgPOSaveIcon = 'Save Icon';
dlgPOClearIcon = 'Clear Icon';
dlgAutoCreateForms = 'Auto-create forms:'; dlgAutoCreateForms = 'Auto-create forms:';
dlgAvailableForms = 'Available forms:'; dlgAvailableForms = 'Available forms:';
dlgAutoCreateNewForms = 'When creating new forms, add them to auto-created forms'; dlgAutoCreateNewForms = 'When creating new forms, add them to auto-created forms';

View File

@ -576,7 +576,6 @@ type
fFirst: array[TUnitInfoList] of TUnitInfo; fFirst: array[TUnitInfoList] of TUnitInfo;
FFirstRemovedDependency: TPkgDependency; FFirstRemovedDependency: TPkgDependency;
FFirstRequiredDependency: TPkgDependency; FFirstRequiredDependency: TPkgDependency;
fIconPath: String;
FJumpHistory: TProjectJumpHistory; FJumpHistory: TProjectJumpHistory;
FLastCompilerFileDate: integer; FLastCompilerFileDate: integer;
FLastCompilerFilename: string; FLastCompilerFilename: string;
@ -836,7 +835,6 @@ type
property FirstUnitWithEditorIndex: TUnitInfo read GetFirstUnitWithEditorIndex; property FirstUnitWithEditorIndex: TUnitInfo read GetFirstUnitWithEditorIndex;
property FirstUnitWithComponent: TUnitInfo read GetFirstUnitWithComponent; property FirstUnitWithComponent: TUnitInfo read GetFirstUnitWithComponent;
property StateFlags: TLazProjectStateFlags read FStateFlags write FStateFlags; property StateFlags: TLazProjectStateFlags read FStateFlags write FStateFlags;
property IconPath: String read fIconPath write fIconPath;
property JumpHistory: TProjectJumpHistory property JumpHistory: TProjectJumpHistory
read FJumpHistory write FJumpHistory; read FJumpHistory write FJumpHistory;
property LastCompilerFileDate: integer read FLastCompilerFileDate property LastCompilerFileDate: integer read FLastCompilerFileDate
@ -906,7 +904,8 @@ function dbgs(Flags: TUnitInfoFlags): string; overload;
implementation implementation
uses frmcustomapplicationoptions; uses
frmcustomapplicationoptions;
const const
ProjectInfoFileVersion = 6; ProjectInfoFileVersion = 6;
@ -1867,7 +1866,6 @@ begin
CompilerOptions.ParsedOpts.InvalidateParseOnChange:=true; CompilerOptions.ParsedOpts.InvalidateParseOnChange:=true;
FDefineTemplates:=TProjectDefineTemplates.Create(Self); FDefineTemplates:=TProjectDefineTemplates.Create(Self);
FFlags:=DefaultProjectFlags; FFlags:=DefaultProjectFlags;
fIconPath := '';
FJumpHistory:=TProjectJumpHistory.Create; FJumpHistory:=TProjectJumpHistory.Create;
FJumpHistory.OnCheckPosition:=@JumpHistoryCheckPosition; FJumpHistory.OnCheckPosition:=@JumpHistoryCheckPosition;
FJumpHistory.OnLoadSaveFilename:=@OnLoadSaveFilename; FJumpHistory.OnLoadSaveFilename:=@OnLoadSaveFilename;
@ -1883,6 +1881,7 @@ begin
FRunParameterOptions:=TRunParamsOptions.Create; FRunParameterOptions:=TRunParamsOptions.Create;
FTargetFileExt := GetExecutableExt; FTargetFileExt := GetExecutableExt;
Title := ''; Title := '';
Icon := '';
FUnitList := TFPList.Create; // list of TUnitInfo FUnitList := TFPList.Create; // list of TUnitInfo
FVersionInfo := TProjectVersionInfo.Create; FVersionInfo := TProjectVersionInfo.Create;
@ -2068,9 +2067,9 @@ begin
xmlconfig.SetDeleteValue(Path+'General/MainUnit/Value', MainUnitID,-1); xmlconfig.SetDeleteValue(Path+'General/MainUnit/Value', MainUnitID,-1);
xmlconfig.SetDeleteValue(Path+'General/AutoCreateForms/Value', xmlconfig.SetDeleteValue(Path+'General/AutoCreateForms/Value',
AutoCreateForms,true); AutoCreateForms,true);
xmlconfig.SetDeleteValue(Path+'General/IconPath/Value',IconPath,'');
xmlconfig.SetValue(Path+'General/TargetFileExt/Value',TargetFileExt); xmlconfig.SetValue(Path+'General/TargetFileExt/Value',TargetFileExt);
xmlconfig.SetDeleteValue(Path+'General/Title/Value', Title,''); xmlconfig.SetDeleteValue(Path+'General/Title/Value', Title,'');
xmlconfig.SetDeleteValue(Path+'General/Icon/Value', Icon, '');
xmlconfig.SetDeleteValue(Path+'General/UseAppBundle/Value', UseAppBundle, True); xmlconfig.SetDeleteValue(Path+'General/UseAppBundle/Value', UseAppBundle, True);
xmlconfig.SetDeleteValue(Path+'General/UseXPManifest/Value', XPManifest.UseManifest, False); xmlconfig.SetDeleteValue(Path+'General/UseXPManifest/Value', XPManifest.UseManifest, False);
@ -2468,12 +2467,10 @@ begin
NewMainUnitID := xmlconfig.GetValue(Path+'General/MainUnit/Value', -1); NewMainUnitID := xmlconfig.GetValue(Path+'General/MainUnit/Value', -1);
AutoCreateForms := xmlconfig.GetValue( AutoCreateForms := xmlconfig.GetValue(
Path+'General/AutoCreateForms/Value', true); Path+'General/AutoCreateForms/Value', true);
IconPath := SwitchPathDelims(
xmlconfig.GetValue(Path+'General/IconPath/Value', './'),
fPathDelimChanged);
TargetFileExt := xmlconfig.GetValue( TargetFileExt := xmlconfig.GetValue(
Path+'General/TargetFileExt/Value', GetExecutableExt); Path+'General/TargetFileExt/Value', GetExecutableExt);
Title := xmlconfig.GetValue(Path+'General/Title/Value', ''); Title := xmlconfig.GetValue(Path+'General/Title/Value', '');
Icon := xmlconfig.GetValue(Path+'General/Icon/Value', '');
UseAppBundle := xmlconfig.GetValue(Path+'General/UseAppBundle/Value', True); UseAppBundle := xmlconfig.GetValue(Path+'General/UseAppBundle/Value', True);
XPManifest.UseManifest := xmlconfig.GetValue(Path+'General/UseXPManifest/Value', False); XPManifest.UseManifest := xmlconfig.GetValue(Path+'General/UseXPManifest/Value', False);
@ -2747,7 +2744,6 @@ begin
FBookmarks.Clear; FBookmarks.Clear;
FCompilerOptions.Clear; FCompilerOptions.Clear;
FDefineTemplates.Clear; FDefineTemplates.Clear;
fIconPath := '';
FJumpHistory.Clear; FJumpHistory.Clear;
fMainUnitID := -1; fMainUnitID := -1;
Modified := false; Modified := false;
@ -2761,6 +2757,7 @@ begin
FPublishOptions.Clear; FPublishOptions.Clear;
FTargetFileExt := GetExecutableExt; FTargetFileExt := GetExecutableExt;
Title := ''; Title := '';
Icon := '';
EndUpdate; EndUpdate;
end; end;

View File

@ -13,7 +13,7 @@ object ProjectOptionsDialog: TProjectOptionsDialog
OnClose = ProjectOptionsClose OnClose = ProjectOptionsClose
ParentFont = False ParentFont = False
Position = poScreenCenter Position = poScreenCenter
LCLVersion = '0.9.25' LCLVersion = '0.9.27'
object Notebook: TNotebook object Notebook: TNotebook
AnchorSideBottom.Control = PODBtnPanel AnchorSideBottom.Control = PODBtnPanel
Height = 394 Height = 394
@ -28,107 +28,204 @@ object ProjectOptionsDialog: TProjectOptionsDialog
ClientHeight = 368 ClientHeight = 368
object AppSettingsGroupBox: TGroupBox object AppSettingsGroupBox: TGroupBox
Left = 6 Left = 6
Height = 166 Height = 219
Top = 6 Top = 6
Width = 453 Width = 453
Align = alTop Align = alTop
AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'AppSettingsGroupBox' Caption = 'AppSettingsGroupBox'
ClientHeight = 148 ClientHeight = 201
ClientWidth = 449 ClientWidth = 449
TabOrder = 0 TabOrder = 0
object TitleLabel: TLabel object TitleLabel: TLabel
AnchorSideLeft.Control = AppSettingsGroupBox
AnchorSideTop.Control = TitleEdit
AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 14 Height = 14
Top = 6 Top = 10
Width = 437 Width = 46
Align = alTop
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
Caption = 'TitleLabel' Caption = 'TitleLabel'
ParentColor = False ParentColor = False
end end
object TitleEdit: TEdit object IconLabel: TLabel
AnchorSideLeft.Control = AppSettingsGroupBox
AnchorSideTop.Control = IconPanel
Left = 6 Left = 6
Height = 23 Height = 14
Top = 20 Top = 35
Width = 437 Width = 47
Align = alTop
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Right = 6 Caption = 'IconLabel'
ParentColor = False
end
object TitleEdit: TEdit
AnchorSideLeft.Side = asrBottom
Left = 106
Height = 23
Top = 6
Width = 337
Align = alTop
BorderSpacing.Left = 100
BorderSpacing.Around = 6
TabOrder = 0 TabOrder = 0
Text = 'TitleEdit' Text = 'TitleEdit'
end end
object UseAppBundleCheckBox: TCheckBox object UseAppBundleCheckBox: TCheckBox
AnchorSideLeft.Control = AppSettingsGroupBox
AnchorSideTop.Control = IconPanel
AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 24 Height = 24
Top = 52 Top = 141
Width = 425 Width = 425
Anchors = [akTop, akLeft, akRight]
AutoSize = False AutoSize = False
BorderSpacing.Around = 6
Caption = 'UseAppBundleCheckBox' Caption = 'UseAppBundleCheckBox'
TabOrder = 1 TabOrder = 1
end end
object UseXPManifestCheckBox: TCheckBox object UseXPManifestCheckBox: TCheckBox
AnchorSideLeft.Control = AppSettingsGroupBox
AnchorSideTop.Control = UseAppBundleCheckBox
AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 24 Height = 24
Top = 118 Top = 171
Width = 425 Width = 425
Anchors = [akTop, akLeft, akRight]
AutoSize = False AutoSize = False
BorderSpacing.Around = 6
Caption = 'UseXPManifestCheckBox' Caption = 'UseXPManifestCheckBox'
TabOrder = 2 TabOrder = 2
end end
object CreateAppBundleButton: TBitBtn object IconPanel: TPanel
Left = 6 AnchorSideLeft.Control = AppSettingsGroupBox
Height = 23 AnchorSideTop.Control = TitleEdit
Top = 82 AnchorSideTop.Side = asrBottom
Width = 142 Left = 106
AutoSize = True Height = 100
Caption = 'CreateAppBundleButton' Top = 35
NumGlyphs = 0 Width = 100
OnClick = CreateAppBundleButtonClick BorderSpacing.Left = 100
BorderSpacing.Around = 6
BevelOuter = bvLowered
ClientHeight = 100
ClientWidth = 100
TabOrder = 3 TabOrder = 3
object IconImage: TImage
Left = 1
Height = 98
Top = 1
Width = 98
Align = alClient
Center = True
end
end
object LoadIconButton: TBitBtn
AnchorSideLeft.Control = IconPanel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = IconPanel
AnchorSideBottom.Control = IconPanel
AnchorSideBottom.Side = asrBottom
Left = 212
Height = 23
Top = 35
Width = 102
AutoSize = True
BorderSpacing.Left = 6
Caption = 'LoadIconButton'
NumGlyphs = 0
OnClick = LoadIconButtonClick
TabOrder = 4
end
object SaveIconButton: TBitBtn
AnchorSideLeft.Control = LoadIconButton
AnchorSideTop.Control = LoadIconButton
AnchorSideTop.Side = asrBottom
Left = 212
Height = 23
Top = 64
Width = 103
AutoSize = True
BorderSpacing.Top = 6
Caption = 'SaveIconButton'
NumGlyphs = 0
OnClick = SaveIconButtonClick
TabOrder = 5
end
object ClearIconButton: TBitBtn
AnchorSideLeft.Control = SaveIconButton
AnchorSideTop.Control = SaveIconButton
AnchorSideTop.Side = asrBottom
Left = 212
Height = 23
Top = 93
Width = 104
AutoSize = True
BorderSpacing.Top = 6
Caption = 'ClearIconButton'
NumGlyphs = 0
OnClick = ClearIconButtonClick
TabOrder = 6
end end
end end
object OutputSettingsGroupBox: TGroupBox object OutputSettingsGroupBox: TGroupBox
Left = 6 Left = 6
Height = 67 Height = 53
Top = 178 Top = 231
Width = 453 Width = 453
Align = alTop Align = alTop
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'OutputSettingsGroupBox' Caption = 'OutputSettingsGroupBox'
ClientHeight = 49 ClientHeight = 35
ClientWidth = 449 ClientWidth = 449
TabOrder = 1 TabOrder = 1
object TargetFileLabel: TLabel object TargetFileLabel: TLabel
AnchorSideLeft.Control = OutputSettingsGroupBox
AnchorSideTop.Control = TargetFileEdit
AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 14 Height = 14
Top = 6 Top = 10
Width = 437 Width = 74
Align = alTop
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6 BorderSpacing.Right = 6
Caption = 'TargetFileLabel' Caption = 'TargetFileLabel'
ParentColor = False ParentColor = False
end end
object TargetFileEdit: TEdit object TargetFileEdit: TEdit
Left = 6 AnchorSideLeft.Control = OutputSettingsGroupBox
AnchorSideTop.Control = OutputSettingsGroupBox
AnchorSideRight.Control = OutputSettingsGroupBox
AnchorSideRight.Side = asrBottom
Left = 106
Height = 23 Height = 23
Top = 20 Top = 6
Width = 437 Width = 337
Align = alTop Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 100
BorderSpacing.Right = 6 BorderSpacing.Around = 6
BorderSpacing.Bottom = 6
TabOrder = 0 TabOrder = 0
Text = 'TargetFileEdit' Text = 'TargetFileEdit'
end end
end end
object CreateAppBundleButton: TBitBtn
AnchorSideLeft.Control = ApplicationPage
AnchorSideTop.Control = OutputSettingsGroupBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 23
Top = 290
Width = 142
AutoSize = True
BorderSpacing.Around = 6
Caption = 'CreateAppBundleButton'
NumGlyphs = 0
OnClick = CreateAppBundleButtonClick
TabOrder = 2
end
end end
object FormsPage: TPage object FormsPage: TPage
Caption = 'FormsPage' Caption = 'FormsPage'
@ -337,8 +434,8 @@ object ProjectOptionsDialog: TProjectOptionsDialog
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'LazDocPathsGroupBox' Caption = 'LazDocPathsGroupBox'
ClientHeight = 178 ClientHeight = 196
ClientWidth = 449 ClientWidth = 453
TabOrder = 0 TabOrder = 0
object LazDocListBox: TListBox object LazDocListBox: TListBox
AnchorSideLeft.Control = LazDocPathsGroupBox AnchorSideLeft.Control = LazDocPathsGroupBox
@ -685,8 +782,29 @@ object ProjectOptionsDialog: TProjectOptionsDialog
ClientHeight = 101 ClientHeight = 101
ClientWidth = 453 ClientWidth = 453
TabOrder = 3 TabOrder = 3
object DescriptionLabel: TLabel
AnchorSideTop.Control = DescriptionEdit
AnchorSideTop.Side = asrCenter
Left = 6
Height = 14
Top = 3
Width = 58
BorderSpacing.Left = 6
Caption = 'Description:'
ParentColor = False
end
object CopyrightLabel: TLabel
AnchorSideLeft.Control = DescriptionLabel
AnchorSideTop.Control = CopyrightEdit
AnchorSideTop.Side = asrCenter
Left = 6
Height = 14
Top = 30
Width = 52
Caption = 'Copyright:'
ParentColor = False
end
object DescriptionEdit: TEdit object DescriptionEdit: TEdit
AnchorSideLeft.Control = PanelOtherLabels
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideRight.Control = OtherInfoGroupBox AnchorSideRight.Control = OtherInfoGroupBox
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
@ -713,34 +831,6 @@ object ProjectOptionsDialog: TProjectOptionsDialog
BorderSpacing.Right = 6 BorderSpacing.Right = 6
TabOrder = 1 TabOrder = 1
end end
object PanelOtherLabels: TPanel
Height = 40
Width = 64
AutoSize = True
BevelOuter = bvNone
ClientHeight = 40
ClientWidth = 64
TabOrder = 2
object CopyrightLabel: TLabel
AnchorSideLeft.Control = DescriptionLabel
AnchorSideTop.Side = asrCenter
Left = 6
Height = 14
Top = 26
Width = 52
Caption = 'Copyright:'
ParentColor = False
end
object DescriptionLabel: TLabel
AnchorSideTop.Side = asrCenter
Left = 6
Height = 14
Width = 58
BorderSpacing.Left = 6
Caption = 'Description:'
ParentColor = False
end
end
object AdditionalInfoButton: TBitBtn object AdditionalInfoButton: TBitBtn
AnchorSideTop.Control = CopyrightEdit AnchorSideTop.Control = CopyrightEdit
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
@ -757,7 +847,7 @@ object ProjectOptionsDialog: TProjectOptionsDialog
Caption = 'Additional Info' Caption = 'Additional Info'
NumGlyphs = 0 NumGlyphs = 0
OnClick = AdditionalInfoButtonClick OnClick = AdditionalInfoButtonClick
TabOrder = 3 TabOrder = 2
end end
end end
end end
@ -779,8 +869,8 @@ object ProjectOptionsDialog: TProjectOptionsDialog
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'i18n Options' Caption = 'i18n Options'
ClientHeight = 55 ClientHeight = 73
ClientWidth = 449 ClientWidth = 453
TabOrder = 0 TabOrder = 0
object PoOutDirLabel: TLabel object PoOutDirLabel: TLabel
Left = 6 Left = 6
@ -905,4 +995,13 @@ object ProjectOptionsDialog: TProjectOptionsDialog
left = 88 left = 88
top = 368 top = 368
end end
object OpenPictureDialog1: TOpenPictureDialog
left = 117
top = 368
end
object SavePictureDialog1: TSavePictureDialog
Title = 'Save file as'
left = 146
top = 368
end
end end

View File

@ -6,141 +6,177 @@ LazarusResources.Add('TProjectOptionsDialog','FORMDATA',[
+#11'BorderIcons'#11#12'biSystemMenu'#0#7'Caption'#6#20'ProjectOptionsDialog' +#11'BorderIcons'#11#12'biSystemMenu'#0#7'Caption'#6#20'ProjectOptionsDialog'
+#12'ClientHeight'#3#176#1#11'ClientWidth'#3#217#1#21'Constraints.MinHeight'#3 +#12'ClientHeight'#3#176#1#11'ClientWidth'#3#217#1#21'Constraints.MinHeight'#3
+#144#1#20'Constraints.MinWidth'#3#144#1#7'OnClose'#7#19'ProjectOptionsClose' +#144#1#20'Constraints.MinWidth'#3#144#1#7'OnClose'#7#19'ProjectOptionsClose'
+#10'ParentFont'#8#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.25' +#10'ParentFont'#8#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.27'
+#0#9'TNotebook'#8'Notebook'#24'AnchorSideBottom.Control'#7#11'PODBtnPanel'#6 +#0#9'TNotebook'#8'Notebook'#24'AnchorSideBottom.Control'#7#11'PODBtnPanel'#6
+'Height'#3#138#1#5'Width'#3#217#1#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop' +'Height'#3#138#1#5'Width'#3#217#1#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'
+#6'akLeft'#7'akRight'#8'akBottom'#0#9'PageIndex'#2#0#8'TabOrder'#2#0#0#5'TPa' +#6'akLeft'#7'akRight'#8'akBottom'#0#9'PageIndex'#2#0#8'TabOrder'#2#0#0#5'TPa'
+'ge'#15'ApplicationPage'#7'Caption'#6#15'ApplicationPage'#11'ClientWidth'#3 +'ge'#15'ApplicationPage'#7'Caption'#6#15'ApplicationPage'#11'ClientWidth'#3
+#209#1#12'ClientHeight'#3'p'#1#0#9'TGroupBox'#19'AppSettingsGroupBox'#4'Left' +#209#1#12'ClientHeight'#3'p'#1#0#9'TGroupBox'#19'AppSettingsGroupBox'#4'Left'
+#2#6#6'Height'#3#166#0#3'Top'#2#6#5'Width'#3#197#1#5'Align'#7#5'alTop'#20'Bo' +#2#6#6'Height'#3#219#0#3'Top'#2#6#5'Width'#3#197#1#5'Align'#7#5'alTop'#8'Aut'
+'rderSpacing.Around'#2#6#7'Caption'#6#19'AppSettingsGroupBox'#12'ClientHeigh' +'oSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#19'AppSettingsGroupBox'
+'t'#3#148#0#11'ClientWidth'#3#193#1#8'TabOrder'#2#0#0#6'TLabel'#10'TitleLabe' +#12'ClientHeight'#3#201#0#11'ClientWidth'#3#193#1#8'TabOrder'#2#0#0#6'TLabel'
+'l'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'#3#181#1#5'Align'#7#5'alTo' +#10'TitleLabel'#22'AnchorSideLeft.Control'#7#19'AppSettingsGroupBox'#21'Anch'
+'p'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Ri' +'orSideTop.Control'#7#9'TitleEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'L'
+'ght'#2#6#7'Caption'#6#10'TitleLabel'#11'ParentColor'#8#0#0#5'TEdit'#9'Title' +'eft'#2#6#6'Height'#2#14#3'Top'#2#10#5'Width'#2'.'#18'BorderSpacing.Left'#2#6
+'Edit'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#20#5'Width'#3#181#1#5'Align'#7#5 +#7'Caption'#6#10'TitleLabel'#11'ParentColor'#8#0#0#6'TLabel'#9'IconLabel'#22
+'alTop'#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrder'#2 +'AnchorSideLeft.Control'#7#19'AppSettingsGroupBox'#21'AnchorSideTop.Control'
+#0#4'Text'#6#9'TitleEdit'#0#0#9'TCheckBox'#20'UseAppBundleCheckBox'#4'Left'#2 +#7#9'IconPanel'#4'Left'#2#6#6'Height'#2#14#3'Top'#2'#'#5'Width'#2'/'#18'Bord'
+#6#6'Height'#2#24#3'Top'#2'4'#5'Width'#3#169#1#7'Anchors'#11#5'akTop'#6'akLe' +'erSpacing.Left'#2#6#7'Caption'#6#9'IconLabel'#11'ParentColor'#8#0#0#5'TEdit'
+'ft'#7'akRight'#0#8'AutoSize'#8#7'Caption'#6#20'UseAppBundleCheckBox'#8'TabO' +#9'TitleEdit'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#2'j'#6'Height'#2
+'rder'#2#1#0#0#9'TCheckBox'#21'UseXPManifestCheckBox'#4'Left'#2#6#6'Height'#2 +#23#3'Top'#2#6#5'Width'#3'Q'#1#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2
+#24#3'Top'#2'v'#5'Width'#3#169#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight' +'d'#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#0#4'Text'#6#9'TitleEdit'#0#0#9
+#0#8'AutoSize'#8#7'Caption'#6#21'UseXPManifestCheckBox'#8'TabOrder'#2#2#0#0#7 +'TCheckBox'#20'UseAppBundleCheckBox'#22'AnchorSideLeft.Control'#7#19'AppSett'
+'TBitBtn'#21'CreateAppBundleButton'#4'Left'#2#6#6'Height'#2#23#3'Top'#2'R'#5 +'ingsGroupBox'#21'AnchorSideTop.Control'#7#9'IconPanel'#18'AnchorSideTop.Sid'
+'Width'#3#142#0#8'AutoSize'#9#7'Caption'#6#21'CreateAppBundleButton'#9'NumGl' +'e'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#24#3'Top'#3#141#0#5'Width'#3#169#1
+'yphs'#2#0#7'OnClick'#7#26'CreateAppBundleButtonClick'#8'TabOrder'#2#3#0#0#0 +#8'AutoSize'#8#20'BorderSpacing.Around'#2#6#7'Caption'#6#20'UseAppBundleChec'
+#9'TGroupBox'#22'OutputSettingsGroupBox'#4'Left'#2#6#6'Height'#2'C'#3'Top'#3 +'kBox'#8'TabOrder'#2#1#0#0#9'TCheckBox'#21'UseXPManifestCheckBox'#22'AnchorS'
+#178#0#5'Width'#3#197#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.A' +'ideLeft.Control'#7#19'AppSettingsGroupBox'#21'AnchorSideTop.Control'#7#20'U'
+'round'#2#6#7'Caption'#6#22'OutputSettingsGroupBox'#12'ClientHeight'#2'1'#11 +'seAppBundleCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'He'
+'ClientWidth'#3#193#1#8'TabOrder'#2#1#0#6'TLabel'#15'TargetFileLabel'#4'Left' +'ight'#2#24#3'Top'#3#171#0#5'Width'#3#169#1#8'AutoSize'#8#20'BorderSpacing.A'
+#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'#3#181#1#5'Align'#7#5'alTop'#18'Borde' +'round'#2#6#7'Caption'#6#21'UseXPManifestCheckBox'#8'TabOrder'#2#2#0#0#6'TPa'
+'rSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7 +'nel'#9'IconPanel'#22'AnchorSideLeft.Control'#7#19'AppSettingsGroupBox'#21'A'
+'Caption'#6#15'TargetFileLabel'#11'ParentColor'#8#0#0#5'TEdit'#14'TargetFile' +'nchorSideTop.Control'#7#9'TitleEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#4
+'Edit'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#20#5'Width'#3#181#1#5'Align'#7#5 +'Left'#2'j'#6'Height'#2'd'#3'Top'#2'#'#5'Width'#2'd'#18'BorderSpacing.Left'#2
+'alTop'#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2#6#20'BorderSpac' +'d'#20'BorderSpacing.Around'#2#6#10'BevelOuter'#7#9'bvLowered'#12'ClientHeig'
+'ing.Bottom'#2#6#8'TabOrder'#2#0#4'Text'#6#14'TargetFileEdit'#0#0#0#0#5'TPag' +'ht'#2'd'#11'ClientWidth'#2'd'#8'TabOrder'#2#3#0#6'TImage'#9'IconImage'#4'Le'
+'e'#9'FormsPage'#7'Caption'#6#9'FormsPage'#11'ClientWidth'#3#209#1#12'Client' +'ft'#2#1#6'Height'#2'b'#3'Top'#2#1#5'Width'#2'b'#5'Align'#7#8'alClient'#6'Ce'
+'Height'#3'p'#1#14'OnContextPopup'#7#21'FormsPageContextPopup'#8'OnResize'#7 +'nter'#9#0#0#0#7'TBitBtn'#14'LoadIconButton'#22'AnchorSideLeft.Control'#7#9
+#15'FormsPageResize'#0#6'TLabel'#21'FormsAutoCreatedLabel'#4'Left'#2'$'#6'He' +'IconPanel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'
+'ight'#2#14#3'Top'#2#10#5'Width'#2'u'#7'Caption'#6#21'FormsAutoCreatedLabel' +#7#9'IconPanel'#24'AnchorSideBottom.Control'#7#9'IconPanel'#21'AnchorSideBot'
+#11'ParentColor'#8#0#0#6'TLabel'#20'FormsAvailFormsLabel'#22'AnchorSideLeft.' +'tom.Side'#7#9'asrBottom'#4'Left'#3#212#0#6'Height'#2#23#3'Top'#2'#'#5'Width'
+'Control'#7#22'FormsAvailFormsListBox'#4'Left'#3#10#1#6'Height'#2#14#3'Top'#2 +#2'f'#8'AutoSize'#9#18'BorderSpacing.Left'#2#6#7'Caption'#6#14'LoadIconButto'
+#10#5'Width'#2'k'#7'Caption'#6#20'FormsAvailFormsLabel'#11'ParentColor'#8#0#0 +'n'#9'NumGlyphs'#2#0#7'OnClick'#7#19'LoadIconButtonClick'#8'TabOrder'#2#4#0#0
+#12'TSpeedButton'#29'FormsMoveAutoCreatedFormUpBtn'#22'AnchorSideLeft.Contro' +#7'TBitBtn'#14'SaveIconButton'#22'AnchorSideLeft.Control'#7#14'LoadIconButto'
+'l'#7#9'FormsPage'#21'AnchorSideTop.Control'#7#23'FormsAutoCreatedListBox'#4 +'n'#21'AnchorSideTop.Control'#7#14'LoadIconButton'#18'AnchorSideTop.Side'#7#9
+'Left'#2#6#6'Height'#2#24#3'Top'#2'$'#5'Width'#2#24#20'BorderSpacing.Around' +'asrBottom'#4'Left'#3#212#0#6'Height'#2#23#3'Top'#2'@'#5'Width'#2'g'#8'AutoS'
+#2#6#5'Color'#7#9'clBtnFace'#9'NumGlyphs'#2#0#7'OnClick'#7'"FormsMoveAutoCre' +'ize'#9#17'BorderSpacing.Top'#2#6#7'Caption'#6#14'SaveIconButton'#9'NumGlyph'
+'atedFormUpBtnClick'#0#0#12'TSpeedButton FormsMoveAutoCreatedFormsDownBtn'#22 +'s'#2#0#7'OnClick'#7#19'SaveIconButtonClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'
+'AnchorSideLeft.Control'#7#29'FormsMoveAutoCreatedFormUpBtn'#21'AnchorSideTo' +#15'ClearIconButton'#22'AnchorSideLeft.Control'#7#14'SaveIconButton'#21'Anch'
+'p.Control'#7#29'FormsMoveAutoCreatedFormUpBtn'#18'AnchorSideTop.Side'#7#9'a' +'orSideTop.Control'#7#14'SaveIconButton'#18'AnchorSideTop.Side'#7#9'asrBotto'
+'srBottom'#4'Left'#2#6#6'Height'#2#24#3'Top'#2'B'#5'Width'#2#24#5'Color'#7#9 +'m'#4'Left'#3#212#0#6'Height'#2#23#3'Top'#2']'#5'Width'#2'h'#8'AutoSize'#9#17
+'clBtnFace'#9'NumGlyphs'#2#0#7'OnClick'#7'$FormsMoveAutoCreatedFormDownBtnCl' +'BorderSpacing.Top'#2#6#7'Caption'#6#15'ClearIconButton'#9'NumGlyphs'#2#0#7
+'ick'#0#0#12'TSpeedButton"FormsRemoveFromAutoCreatedFormsBtn'#22'AnchorSideL' +'OnClick'#7#20'ClearIconButtonClick'#8'TabOrder'#2#6#0#0#0#9'TGroupBox'#22'O'
+'eft.Control'#7#23'FormsAutoCreatedListBox'#19'AnchorSideLeft.Side'#7#9'asrB' +'utputSettingsGroupBox'#4'Left'#2#6#6'Height'#2'5'#3'Top'#3#231#0#5'Width'#3
+'ottom'#21'AnchorSideTop.Control'#7#23'FormsAutoCreatedListBox'#4'Left'#3#236 +#197#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Capt'
+#0#6'Height'#2#24#3'Top'#2'$'#5'Width'#2#24#20'BorderSpacing.Around'#2#6#5'C' +'ion'#6#22'OutputSettingsGroupBox'#12'ClientHeight'#2'#'#11'ClientWidth'#3
+'olor'#7#9'clBtnFace'#9'NumGlyphs'#2#0#7'OnClick'#7'''FormsRemoveFromAutoCre' +#193#1#8'TabOrder'#2#1#0#6'TLabel'#15'TargetFileLabel'#22'AnchorSideLeft.Con'
+'atedFormsBtnClick'#0#0#12'TSpeedButton'#29'FormsAddToAutoCreatedFormsBtn'#22 +'trol'#7#22'OutputSettingsGroupBox'#21'AnchorSideTop.Control'#7#14'TargetFil'
+'AnchorSideLeft.Control'#7#23'FormsAutoCreatedListBox'#19'AnchorSideLeft.Sid' +'eEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2#14#3'T'
+'e'#7#9'asrBottom'#21'AnchorSideTop.Control'#7'"FormsRemoveFromAutoCreatedFo' +'op'#2#10#5'Width'#2'J'#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2
+'rmsBtn'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#236#0#6'Height'#2#24 +#6#7'Caption'#6#15'TargetFileLabel'#11'ParentColor'#8#0#0#5'TEdit'#14'Target'
+#3'Top'#2'B'#5'Width'#2#24#5'Color'#7#9'clBtnFace'#9'NumGlyphs'#2#0#7'OnClic' +'FileEdit'#22'AnchorSideLeft.Control'#7#22'OutputSettingsGroupBox'#21'Anchor'
,'k'#7'"FormsAddToAutoCreatedFormsBtnClick'#0#0#8'TListBox'#23'FormsAutoCreat' ,'SideTop.Control'#7#22'OutputSettingsGroupBox'#23'AnchorSideRight.Control'#7
+'edListBox'#22'AnchorSideLeft.Control'#7' FormsMoveAutoCreatedFormsDownBtn' +#22'OutputSettingsGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2
+#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#21'Forms' +'j'#6'Height'#2#23#3'Top'#2#6#5'Width'#3'Q'#1#7'Anchors'#11#5'akTop'#6'akLef'
+'AutoCreatedLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom' +'t'#7'akRight'#0#18'BorderSpacing.Left'#2'd'#20'BorderSpacing.Around'#2#6#8
+'.Control'#7#31'FormsAutoCreateNewFormsCheckBox'#4'Left'#2'$'#6'Height'#3'3' +'TabOrder'#2#0#4'Text'#6#14'TargetFileEdit'#0#0#0#7'TBitBtn'#21'CreateAppBun'
+#1#3'Top'#2#30#5'Width'#3#194#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom' +'dleButton'#22'AnchorSideLeft.Control'#7#15'ApplicationPage'#21'AnchorSideTo'
+#0#20'BorderSpacing.Around'#2#6#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#8'TLis' +'p.Control'#7#22'OutputSettingsGroupBox'#18'AnchorSideTop.Side'#7#9'asrBotto'
+'tBox'#22'FormsAvailFormsListBox'#22'AnchorSideLeft.Control'#7#29'FormsAddTo' +'m'#4'Left'#2#6#6'Height'#2#23#3'Top'#3'"'#1#5'Width'#3#142#0#8'AutoSize'#9
+'AutoCreatedFormsBtn'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' +#20'BorderSpacing.Around'#2#6#7'Caption'#6#21'CreateAppBundleButton'#9'NumGl'
+'p.Control'#7#20'FormsAvailFormsLabel'#18'AnchorSideTop.Side'#7#9'asrBottom' +'yphs'#2#0#7'OnClick'#7#26'CreateAppBundleButtonClick'#8'TabOrder'#2#2#0#0#0
+#23'AnchorSideRight.Control'#7#9'FormsPage'#20'AnchorSideRight.Side'#7#9'asr' +#5'TPage'#9'FormsPage'#7'Caption'#6#9'FormsPage'#11'ClientWidth'#3#209#1#12
+'Bottom'#24'AnchorSideBottom.Control'#7#31'FormsAutoCreateNewFormsCheckBox'#4 +'ClientHeight'#3'p'#1#14'OnContextPopup'#7#21'FormsPageContextPopup'#8'OnRes'
+'Left'#3#10#1#6'Height'#3'3'#1#3'Top'#2#30#5'Width'#3#193#0#7'Anchors'#11#5 +'ize'#7#15'FormsPageResize'#0#6'TLabel'#21'FormsAutoCreatedLabel'#4'Left'#2
+'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#11'M' +'$'#6'Height'#2#14#3'Top'#2#10#5'Width'#2'u'#7'Caption'#6#21'FormsAutoCreate'
+'ultiSelect'#9#8'TabOrder'#2#1#0#0#9'TCheckBox'#31'FormsAutoCreateNewFormsCh' +'dLabel'#11'ParentColor'#8#0#0#6'TLabel'#20'FormsAvailFormsLabel'#22'AnchorS'
+'eckBox'#22'AnchorSideLeft.Control'#7#29'FormsAddToAutoCreatedFormsBtn'#21'A' +'ideLeft.Control'#7#22'FormsAvailFormsListBox'#4'Left'#3#10#1#6'Height'#2#14
+'nchorSideTop.Control'#7#23'FormsAutoCreatedListBox'#4'Left'#2#6#6'Height'#2 +#3'Top'#2#10#5'Width'#2'k'#7'Caption'#6#20'FormsAvailFormsLabel'#11'ParentCo'
+#19#3'Top'#3'W'#1#5'Width'#3#197#1#5'Align'#7#8'alBottom'#20'BorderSpacing.A' +'lor'#8#0#0#12'TSpeedButton'#29'FormsMoveAutoCreatedFormUpBtn'#22'AnchorSide'
+'round'#2#6#7'Caption'#6#31'FormsAutoCreateNewFormsCheckBox'#8'TabOrder'#2#2 +'Left.Control'#7#9'FormsPage'#21'AnchorSideTop.Control'#7#23'FormsAutoCreate'
+#0#0#0#5'TPage'#8'MiscPage'#7'Caption'#6#8'MiscPage'#11'ClientWidth'#3#209#1 +'dListBox'#4'Left'#2#6#6'Height'#2#24#3'Top'#2'$'#5'Width'#2#24#20'BorderSpa'
+#12'ClientHeight'#3'p'#1#0#9'TCheckBox)MainUnitHasUsesSectionForAllUnitsChec' +'cing.Around'#2#6#5'Color'#7#9'clBtnFace'#9'NumGlyphs'#2#0#7'OnClick'#7'"For'
+'kBox'#21'AnchorSideTop.Control'#7#30'MainUnitIsPascalSourceCheckBox'#18'Anc' +'msMoveAutoCreatedFormUpBtnClick'#0#0#12'TSpeedButton FormsMoveAutoCreatedFo'
+'horSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#2#31#5'Wi' +'rmsDownBtn'#22'AnchorSideLeft.Control'#7#29'FormsMoveAutoCreatedFormUpBtn'
+'dth'#3#197#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6 +#21'AnchorSideTop.Control'#7#29'FormsMoveAutoCreatedFormUpBtn'#18'AnchorSide'
+')MainUnitHasUsesSectionForAllUnitsCheckBox'#8'TabOrder'#2#0#0#0#9'TCheckBox' +'Top.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#24#3'Top'#2'B'#5'Width'#2
+'''MainUnitHasCreateFormStatementsCheckBox'#21'AnchorSideTop.Control'#7')Mai' +#24#5'Color'#7#9'clBtnFace'#9'NumGlyphs'#2#0#7'OnClick'#7'$FormsMoveAutoCrea'
+'nUnitHasUsesSectionForAllUnitsCheckBox'#18'AnchorSideTop.Side'#7#9'asrBotto' +'tedFormDownBtnClick'#0#0#12'TSpeedButton"FormsRemoveFromAutoCreatedFormsBtn'
+'m'#4'Left'#2#6#6'Height'#2#19#3'Top'#2'8'#5'Width'#3#197#1#5'Align'#7#5'alT' +#22'AnchorSideLeft.Control'#7#23'FormsAutoCreatedListBox'#19'AnchorSideLeft.'
+'op'#20'BorderSpacing.Around'#2#6#7'Caption'#6'''MainUnitHasCreateFormStatem' +'Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#23'FormsAutoCreatedListBox'
+'entsCheckBox'#8'TabOrder'#2#1#0#0#9'TCheckBox'#30'MainUnitIsPascalSourceChe' +#4'Left'#3#236#0#6'Height'#2#24#3'Top'#2'$'#5'Width'#2#24#20'BorderSpacing.A'
+'ckBox'#4'Left'#2#6#6'Height'#2#19#3'Top'#2#6#5'Width'#3#197#1#5'Align'#7#5 +'round'#2#6#5'Color'#7#9'clBtnFace'#9'NumGlyphs'#2#0#7'OnClick'#7'''FormsRem'
+'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#30'MainUnitIsPascalSourceC' +'oveFromAutoCreatedFormsBtnClick'#0#0#12'TSpeedButton'#29'FormsAddToAutoCrea'
+'heckBox'#8'TabOrder'#2#2#0#0#9'TCheckBox!MainUnitHasTitleStatementCheckBox' +'tedFormsBtn'#22'AnchorSideLeft.Control'#7#23'FormsAutoCreatedListBox'#19'An'
+#21'AnchorSideTop.Control'#7'''MainUnitHasCreateFormStatementsCheckBox'#18'A' +'chorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7'"FormsRemoveF'
+'nchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#2'Q'#5 +'romAutoCreatedFormsBtn'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#236
+'Width'#3#197#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6 +#0#6'Height'#2#24#3'Top'#2'B'#5'Width'#2#24#5'Color'#7#9'clBtnFace'#9'NumGly'
+'!MainUnitHasTitleStatementCheckBox'#8'TabOrder'#2#5#0#0#9'TCheckBox'#16'Run' +'phs'#2#0#7'OnClick'#7'"FormsAddToAutoCreatedFormsBtnClick'#0#0#8'TListBox'
+'nableCheckBox'#21'AnchorSideTop.Control'#7'!MainUnitHasTitleStatementCheckB' +#23'FormsAutoCreatedListBox'#22'AnchorSideLeft.Control'#7' FormsMoveAutoCrea'
+'ox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top' +'tedFormsDownBtn'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co'
+#2'p'#5'Width'#3#197#1#5'Align'#7#5'alTop'#17'BorderSpacing.Top'#2#6#20'Bord' +'ntrol'#7#21'FormsAutoCreatedLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#24
+'erSpacing.Around'#2#6#7'Caption'#6#16'RunnableCheckBox'#8'TabOrder'#2#3#0#0 +'AnchorSideBottom.Control'#7#31'FormsAutoCreateNewFormsCheckBox'#4'Left'#2'$'
+#9'TCheckBox'#19'AlwaysBuildCheckBox'#21'AnchorSideTop.Control'#7#16'Runnabl' +#6'Height'#3'3'#1#3'Top'#2#30#5'Width'#3#194#0#7'Anchors'#11#5'akTop'#6'akLe'
+'eCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19 +'ft'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#11'MultiSelect'#9#8'TabOrder'
+#3'Top'#3#137#0#5'Width'#3#197#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around' +#2#0#0#0#8'TListBox'#22'FormsAvailFormsListBox'#22'AnchorSideLeft.Control'#7
+#2#6#7'Caption'#6#19'AlwaysBuildCheckBox'#8'TabOrder'#2#4#0#0#0#5'TPage'#10 +#29'FormsAddToAutoCreatedFormsBtn'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21
+'LazDocPage'#7'Caption'#6#10'LazDocPage'#11'ClientWidth'#3#209#1#12'ClientHe' +'AnchorSideTop.Control'#7#20'FormsAvailFormsLabel'#18'AnchorSideTop.Side'#7#9
+'ight'#3'p'#1#0#9'TGroupBox'#19'LazDocPathsGroupBox'#4'Left'#2#6#6'Height'#3 +'asrBottom'#23'AnchorSideRight.Control'#7#9'FormsPage'#20'AnchorSideRight.Si'
+#196#0#3'Top'#2#6#5'Width'#3#197#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'Bord' +'de'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#31'FormsAutoCreateNewForm'
+'erSpacing.Around'#2#6#7'Caption'#6#19'LazDocPathsGroupBox'#12'ClientHeight' +'sCheckBox'#4'Left'#3#10#1#6'Height'#3'3'#1#3'Top'#2#30#5'Width'#3#193#0#7'A'
+#3#178#0#11'ClientWidth'#3#193#1#8'TabOrder'#2#0#0#8'TListBox'#13'LazDocList' +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Aro'
+'Box'#22'AnchorSideLeft.Control'#7#19'LazDocPathsGroupBox'#21'AnchorSideTop.' +'und'#2#6#11'MultiSelect'#9#8'TabOrder'#2#1#0#0#9'TCheckBox'#31'FormsAutoCre'
+'Control'#7#14'LazDocPathEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anch' +'ateNewFormsCheckBox'#22'AnchorSideLeft.Control'#7#29'FormsAddToAutoCreatedF'
+'orSideRight.Control'#7#19'LazDocPathsGroupBox'#20'AnchorSideRight.Side'#7#9 +'ormsBtn'#21'AnchorSideTop.Control'#7#23'FormsAutoCreatedListBox'#4'Left'#2#6
+'asrBottom'#4'Left'#2#6#6'Height'#2'l'#3'Top'#2'#'#5'Width'#3#181#1#7'Anchor' +#6'Height'#2#19#3'Top'#3'W'#1#5'Width'#3#197#1#5'Align'#7#8'alBottom'#20'Bor'
+'s'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#8'TabOrd' +'derSpacing.Around'#2#6#7'Caption'#6#31'FormsAutoCreateNewFormsCheckBox'#8'T'
+'er'#2#0#0#0#5'TEdit'#14'LazDocPathEdit'#22'AnchorSideLeft.Control'#7#19'Laz' +'abOrder'#2#2#0#0#0#5'TPage'#8'MiscPage'#7'Caption'#6#8'MiscPage'#11'ClientW'
+'DocPathsGroupBox'#21'AnchorSideTop.Control'#7#19'LazDocPathsGroupBox'#23'An' +'idth'#3#209#1#12'ClientHeight'#3'p'#1#0#9'TCheckBox)MainUnitHasUsesSectionF'
+'chorSideRight.Control'#7#18'LazDocBrowseButton'#4'Left'#2#6#6'Height'#2#23#3 +'orAllUnitsCheckBox'#21'AnchorSideTop.Control'#7#30'MainUnitIsPascalSourceCh'
+'Top'#2#6#5'Width'#3#151#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20 +'eckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3
+'BorderSpacing.Around'#2#6#8'TabOrder'#2#1#4'Text'#6#14'LazDocPathEdit'#0#0#7 +'Top'#2#31#5'Width'#3#197#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6
+'TButton'#18'LazDocBrowseButton'#22'AnchorSideLeft.Control'#7#14'LazDocPathE' +#7'Caption'#6')MainUnitHasUsesSectionForAllUnitsCheckBox'#8'TabOrder'#2#0#0#0
+'dit'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#19 +#9'TCheckBox''MainUnitHasCreateFormStatementsCheckBox'#21'AnchorSideTop.Cont'
+'LazDocPathsGroupBox'#23'AnchorSideRight.Control'#7#19'LazDocPathsGroupBox' +'rol'#7')MainUnitHasUsesSectionForAllUnitsCheckBox'#18'AnchorSideTop.Side'#7
+#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#163#1#6'Height'#2#23#3'To' +#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'Top'#2'8'#5'Width'#3#197#1#5'Alig'
,'p'#2#6#5'Width'#2#24#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.T' ,'n'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6'''MainUnitHasCreate'
+'op'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'OnClick'#7#23'Laz' +'FormStatementsCheckBox'#8'TabOrder'#2#1#0#0#9'TCheckBox'#30'MainUnitIsPasca'
+'DocBrowseButtonClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#19'LazDocAddPathButton' +'lSourceCheckBox'#4'Left'#2#6#6'Height'#2#19#3'Top'#2#6#5'Width'#3#197#1#5'A'
+#22'AnchorSideLeft.Control'#7#19'LazDocPathsGroupBox'#21'AnchorSideTop.Contr' +'lign'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#30'MainUnitIsPas'
+'ol'#7#13'LazDocListBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6 +'calSourceCheckBox'#8'TabOrder'#2#2#0#0#9'TCheckBox!MainUnitHasTitleStatemen'
+'Height'#2#23#3'Top'#3#149#0#5'Width'#3#133#0#8'AutoSize'#9#20'BorderSpacing' +'tCheckBox'#21'AnchorSideTop.Control'#7'''MainUnitHasCreateFormStatementsChe'
+'.Around'#2#6#7'Caption'#6#19'LazDocAddPathButton'#9'NumGlyphs'#2#0#7'OnClic' +'ckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#19#3'T'
+'k'#7#24'LazDocAddPathButtonClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#22'LazDocD' +'op'#2'Q'#5'Width'#3#197#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7
+'eletePathButton'#22'AnchorSideLeft.Control'#7#19'LazDocAddPathButton'#19'An' +'Caption'#6'!MainUnitHasTitleStatementCheckBox'#8'TabOrder'#2#5#0#0#9'TCheck'
+'chorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'LazDocList' +'Box'#16'RunnableCheckBox'#21'AnchorSideTop.Control'#7'!MainUnitHasTitleStat'
+'Box'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#145#0#6'Height'#2#23#3 +'ementCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2
+'Top'#3#149#0#5'Width'#3#145#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7 +#19#3'Top'#2'p'#5'Width'#3#197#1#5'Align'#7#5'alTop'#17'BorderSpacing.Top'#2
+#6#20'BorderSpacing.Around'#2#6#7'Caption'#6#16'RunnableCheckBox'#8'TabOrder'
+#2#3#0#0#9'TCheckBox'#19'AlwaysBuildCheckBox'#21'AnchorSideTop.Control'#7#16
+'RunnableCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Heigh'
+'t'#2#19#3'Top'#3#137#0#5'Width'#3#197#1#5'Align'#7#5'alTop'#20'BorderSpacin'
+'g.Around'#2#6#7'Caption'#6#19'AlwaysBuildCheckBox'#8'TabOrder'#2#4#0#0#0#5
+'TPage'#10'LazDocPage'#7'Caption'#6#10'LazDocPage'#11'ClientWidth'#3#209#1#12
+'ClientHeight'#3'p'#1#0#9'TGroupBox'#19'LazDocPathsGroupBox'#4'Left'#2#6#6'H'
+'eight'#3#196#0#3'Top'#2#6#5'Width'#3#197#1#5'Align'#7#5'alTop'#8'AutoSize'#9
+#20'BorderSpacing.Around'#2#6#7'Caption'#6#19'LazDocPathsGroupBox'#12'Client'
+'Height'#3#196#0#11'ClientWidth'#3#197#1#8'TabOrder'#2#0#0#8'TListBox'#13'La'
+'zDocListBox'#22'AnchorSideLeft.Control'#7#19'LazDocPathsGroupBox'#21'Anchor'
+'SideTop.Control'#7#14'LazDocPathEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'
+#23'AnchorSideRight.Control'#7#19'LazDocPathsGroupBox'#20'AnchorSideRight.Si'
+'de'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'l'#3'Top'#2'#'#5'Width'#3#181#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#8
+'TabOrder'#2#0#0#0#5'TEdit'#14'LazDocPathEdit'#22'AnchorSideLeft.Control'#7
+#19'LazDocPathsGroupBox'#21'AnchorSideTop.Control'#7#19'LazDocPathsGroupBox'
+#23'AnchorSideRight.Control'#7#18'LazDocBrowseButton'#4'Left'#2#6#6'Height'#2
+#23#3'Top'#2#6#5'Width'#3#151#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0
+#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#1#4'Text'#6#14'LazDocPathEdit'#0
+#0#7'TButton'#18'LazDocBrowseButton'#22'AnchorSideLeft.Control'#7#14'LazDocP'
+'athEdit'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7
+#19'LazDocPathsGroupBox'#23'AnchorSideRight.Control'#7#19'LazDocPathsGroupBo'
+'x'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#163#1#6'Height'#2#23#3
+'Top'#2#6#5'Width'#2#24#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing'
+'.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'OnClick'#7#23'L'
+'azDocBrowseButtonClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#19'LazDocAddPathButt'
+'on'#22'AnchorSideLeft.Control'#7#19'LazDocPathsGroupBox'#21'AnchorSideTop.C'
+'ontrol'#7#13'LazDocListBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2
+#6#6'Height'#2#23#3'Top'#3#149#0#5'Width'#3#133#0#8'AutoSize'#9#20'BorderSpa'
+'cing.Around'#2#6#7'Caption'#6#19'LazDocAddPathButton'#9'NumGlyphs'#2#0#7'On'
+'Click'#7#24'LazDocAddPathButtonClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#22'Laz'
+'DocDeletePathButton'#22'AnchorSideLeft.Control'#7#19'LazDocAddPathButton'#19
+'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#13'LazDocLi'
+'stBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#145#0#6'Height'#2#23
+#3'Top'#3#149#0#5'Width'#3#145#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7
+'Caption'#6#22'LazDocDeletePathButton'#9'NumGlyphs'#2#0#7'OnClick'#7#27'LazD' +'Caption'#6#22'LazDocDeletePathButton'#9'NumGlyphs'#2#0#7'OnClick'#7#27'LazD'
+'ocDeletePathButtonClick'#8'TabOrder'#2#4#0#0#0#0#5'TPage'#8'SavePage'#7'Cap' +'ocDeletePathButtonClick'#8'TabOrder'#2#4#0#0#0#0#5'TPage'#8'SavePage'#7'Cap'
+'tion'#6#8'SavePage'#11'ClientWidth'#3#209#1#12'ClientHeight'#3'p'#1#0#9'TCh' +'tion'#6#8'SavePage'#11'ClientWidth'#3#209#1#12'ClientHeight'#3'p'#1#0#9'TCh'
@ -157,7 +193,7 @@ LazarusResources.Add('TProjectOptionsDialog','FORMDATA',[
+'m'#4'Left'#2#6#6'Height'#2'u'#3'Top'#2'>'#5'Width'#3#197#1#5'Align'#7#5'alT' +'m'#4'Left'#2#6#6'Height'#2'u'#3'Top'#2'>'#5'Width'#3#197#1#5'Align'#7#5'alT'
+'op'#8'AutoFill'#9#17'BorderSpacing.Top'#2#6#20'BorderSpacing.Around'#2#6#7 +'op'#8'AutoFill'#9#17'BorderSpacing.Top'#2#6#20'BorderSpacing.Around'#2#6#7
+'Caption'#6#29'SaveSessionLocationRadioGroup'#28'ChildSizing.LeftRightSpacin' +'Caption'#6#29'SaveSessionLocationRadioGroup'#28'ChildSizing.LeftRightSpacin'
+'g'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizonta' ,'g'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizonta'
+'l'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsH' +'l'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsH'
+'omogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds' +'omogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'
+#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7 +#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7
@ -193,7 +229,7 @@ LazarusResources.Add('TProjectOptionsDialog','FORMDATA',[
+'AnchorSideTop.Control'#7#12'VersionLabel'#18'AnchorSideTop.Side'#7#9'asrBot' +'AnchorSideTop.Control'#7#12'VersionLabel'#18'AnchorSideTop.Side'#7#9'asrBot'
+'tom'#4'Left'#2#6#6'Height'#2#20#3'Top'#2#26#5'Width'#2'F'#8'TabOrder'#2#1#0 +'tom'#4'Left'#2#6#6'Height'#2#20#3'Top'#2#26#5'Width'#2'F'#8'TabOrder'#2#1#0
+#0#9'TSpinEdit'#21'MajorRevisionSpinEdit'#22'AnchorSideLeft.Control'#7#18'Ma' +#0#9'TSpinEdit'#21'MajorRevisionSpinEdit'#22'AnchorSideLeft.Control'#7#18'Ma'
,'jorRevisionLabel'#21'AnchorSideTop.Control'#7#18'MajorRevisionLabel'#18'Anc' +'jorRevisionLabel'#21'AnchorSideTop.Control'#7#18'MajorRevisionLabel'#18'Anc'
+'horSideTop.Side'#7#9'asrBottom'#4'Left'#2'j'#6'Height'#2#20#3'Top'#2#26#5'W' +'horSideTop.Side'#7#9'asrBottom'#4'Left'#2'j'#6'Height'#2#20#3'Top'#2#26#5'W'
+'idth'#2'F'#8'TabOrder'#2#2#0#0#9'TSpinEdit'#21'MinorRevisionSpinEdit'#22'An' +'idth'#2'F'#8'TabOrder'#2#2#0#0#9'TSpinEdit'#21'MinorRevisionSpinEdit'#22'An'
+'chorSideLeft.Control'#7#18'MinorRevisionLabel'#21'AnchorSideTop.Control'#7 +'chorSideLeft.Control'#7#18'MinorRevisionLabel'#21'AnchorSideTop.Control'#7
@ -221,7 +257,7 @@ LazarusResources.Add('TProjectOptionsDialog','FORMDATA',[
+'Left'#3#4#1#6'Height'#2#14#3'Top'#2#6#5'Width'#2'H'#20'BorderSpacing.Around' +'Left'#3#4#1#6'Height'#2#14#3'Top'#2#6#5'Width'#2'H'#20'BorderSpacing.Around'
+#2#6#7'Caption'#6#14'Character Set:'#11'ParentColor'#8#0#0#9'TComboBox'#25'L' +#2#6#7'Caption'#6#14'Character Set:'#11'ParentColor'#8#0#0#9'TComboBox'#25'L'
+'anguageSelectionComboBox'#22'AnchorSideLeft.Control'#7#22'LanguageSelection' +'anguageSelectionComboBox'#22'AnchorSideLeft.Control'#7#22'LanguageSelection'
+'Label'#21'AnchorSideTop.Control'#7#22'LanguageSelectionLabel'#18'AnchorSide' ,'Label'#21'AnchorSideTop.Control'#7#22'LanguageSelectionLabel'#18'AnchorSide'
+'Top.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2#26#5'Width'#3 +'Top.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2#26#5'Width'#3
+#248#0#17'BorderSpacing.Top'#2#2#20'BorderSpacing.Bottom'#2#6#10'ItemHeight' +#248#0#17'BorderSpacing.Top'#2#2#20'BorderSpacing.Bottom'#2#6#10'ItemHeight'
+#2#13#8'TabOrder'#2#0#4'Text'#6#12'U.S. English'#0#0#9'TComboBox'#20'Charact' +#2#13#8'TabOrder'#2#0#4'Text'#6#12'U.S. English'#0#0#9'TComboBox'#20'Charact'
@ -235,72 +271,73 @@ LazarusResources.Add('TProjectOptionsDialog','FORMDATA',[
+'nchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'e'#3'Top'#3#215 +'nchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'e'#3'Top'#3#215
+#0#5'Width'#3#197#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Aroun' +#0#5'Width'#3#197#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Aroun'
+'d'#2#6#7'Caption'#6#10'Other Info'#12'ClientHeight'#2'e'#11'ClientWidth'#3 +'d'#2#6#7'Caption'#6#10'Other Info'#12'ClientHeight'#2'e'#11'ClientWidth'#3
+#197#1#8'TabOrder'#2#3#0#5'TEdit'#15'DescriptionEdit'#22'AnchorSideLeft.Cont' +#197#1#8'TabOrder'#2#3#0#6'TLabel'#16'DescriptionLabel'#21'AnchorSideTop.Con'
+'rol'#7#16'PanelOtherLabels'#19'AnchorSideLeft.Side'#7#9'asrBottom'#23'Ancho' +'trol'#7#15'DescriptionEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2
+'rSideRight.Control'#7#17'OtherInfoGroupBox'#20'AnchorSideRight.Side'#7#9'as' +#6#6'Height'#2#14#3'Top'#2#3#5'Width'#2':'#18'BorderSpacing.Left'#2#6#7'Capt'
+'rBottom'#4'Left'#2'F'#6'Height'#2#21#5'Width'#3'u'#1#7'Anchors'#11#5'akTop' +'ion'#6#12'Description:'#11'ParentColor'#8#0#0#6'TLabel'#14'CopyrightLabel'
+#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2 +#22'AnchorSideLeft.Control'#7#16'DescriptionLabel'#21'AnchorSideTop.Control'
+#6#8'TabOrder'#2#0#0#0#5'TEdit'#13'CopyrightEdit'#22'AnchorSideLeft.Control' +#7#13'CopyrightEdit'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'Hei'
+#7#15'DescriptionEdit'#21'AnchorSideTop.Control'#7#15'DescriptionEdit'#18'An' +'ght'#2#14#3'Top'#2#30#5'Width'#2'4'#7'Caption'#6#10'Copyright:'#11'ParentCo'
+'chorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#17'OtherInfo' +'lor'#8#0#0#5'TEdit'#15'DescriptionEdit'#19'AnchorSideLeft.Side'#7#9'asrBott'
+'GroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'F'#6'Height'#2 +'om'#23'AnchorSideRight.Control'#7#17'OtherInfoGroupBox'#20'AnchorSideRight.'
+#21#3'Top'#2#27#5'Width'#3'u'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0 +'Side'#7#9'asrBottom'#4'Left'#2'F'#6'Height'#2#21#5'Width'#3'u'#1#7'Anchors'
+#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrder'#2#1#0#0#6 +#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6#19'BorderSpac'
+'TPanel'#16'PanelOtherLabels'#6'Height'#2'('#5'Width'#2'@'#8'AutoSize'#9#10 +'ing.Right'#2#6#8'TabOrder'#2#0#0#0#5'TEdit'#13'CopyrightEdit'#22'AnchorSide'
+'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'('#11'ClientWidth'#2'@'#8'TabOrd' +'Left.Control'#7#15'DescriptionEdit'#21'AnchorSideTop.Control'#7#15'Descript'
+'er'#2#2#0#6'TLabel'#14'CopyrightLabel'#22'AnchorSideLeft.Control'#7#16'Desc' +'ionEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7
+'riptionLabel'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2#6#6'Height'#2 +#17'OtherInfoGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'F'#6
+#14#3'Top'#2#26#5'Width'#2'4'#7'Caption'#6#10'Copyright:'#11'ParentColor'#8#0 +'Height'#2#21#3'Top'#2#27#5'Width'#3'u'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7
+#0#6'TLabel'#16'DescriptionLabel'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Le' +'akRight'#0#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrder'
+'ft'#2#6#6'Height'#2#14#5'Width'#2':'#18'BorderSpacing.Left'#2#6#7'Caption'#6 +#2#1#0#0#7'TBitBtn'#20'AdditionalInfoButton'#21'AnchorSideTop.Control'#7#13
+#12'Description:'#11'ParentColor'#8#0#0#0#7'TBitBtn'#20'AdditionalInfoButton' +'CopyrightEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Con'
+#21'AnchorSideTop.Control'#7#13'CopyrightEdit'#18'AnchorSideTop.Side'#7#9'as' +'trol'#7#17'OtherInfoGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'An'
+'rBottom'#23'AnchorSideRight.Control'#7#17'OtherInfoGroupBox'#20'AnchorSideR' +'chorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'['#1#6'Height'#2#23#3'Top'#2
+'ight.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3 +'6'#5'Width'#2'`'#7'Anchors'#11#5'akTop'#7'akRight'#0#8'AutoSize'#9#20'Borde'
,'['#1#6'Height'#2#23#3'Top'#2'6'#5'Width'#2'`'#7'Anchors'#11#5'akTop'#7'akRi' +'rSpacing.Around'#2#6#7'Caption'#6#15'Additional Info'#9'NumGlyphs'#2#0#7'On'
+'ght'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#15'Additiona' +'Click'#7#25'AdditionalInfoButtonClick'#8'TabOrder'#2#2#0#0#0#0#5'TPage'#8'i'
+'l Info'#9'NumGlyphs'#2#0#7'OnClick'#7#25'AdditionalInfoButtonClick'#8'TabOr' +'18nPage'#7'Caption'#6#4'i18n'#11'ClientWidth'#3#209#1#12'ClientHeight'#3'p'
+'der'#2#3#0#0#0#0#5'TPage'#8'i18nPage'#7'Caption'#6#4'i18n'#11'ClientWidth'#3 +#1#0#9'TGroupBox'#12'I18NGroupBox'#22'AnchorSideLeft.Control'#7#17'OtherInfo'
+#209#1#12'ClientHeight'#3'p'#1#0#9'TGroupBox'#12'I18NGroupBox'#22'AnchorSide' +'GroupBox'#21'AnchorSideTop.Control'#7#19'VersionInfoGroupBox'#18'AnchorSide'
+'Left.Control'#7#17'OtherInfoGroupBox'#21'AnchorSideTop.Control'#7#19'Versio' +'Top.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#17'OtherInfoGroupBox'
+'nInfoGroupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Con' +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'I'#3'Top'#2
+'trol'#7#17'OtherInfoGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Lef' +#31#5'Width'#3#197#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Arou'
+'t'#2#6#6'Height'#2'I'#3'Top'#2#31#5'Width'#3#197#1#5'Align'#7#5'alTop'#8'Au' +'nd'#2#6#7'Caption'#6#12'i18n Options'#12'ClientHeight'#2'I'#11'ClientWidth'
+'toSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#12'i18n Options'#12'Cli' +#3#197#1#8'TabOrder'#2#0#0#6'TLabel'#13'PoOutDirLabel'#4'Left'#2#6#6'Height'
+'entHeight'#2'7'#11'ClientWidth'#3#193#1#8'TabOrder'#2#0#0#6'TLabel'#13'PoOu' +#2#14#3'Top'#2#6#5'Width'#2'g'#20'BorderSpacing.Around'#2#6#7'Caption'#6#20
+'tDirLabel'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'#2'g'#20'BorderSpa' +'PO Output Directory:'#11'ParentColor'#8#0#0#5'TEdit'#12'POOutDirEdit'#22'An'
+'cing.Around'#2#6#7'Caption'#6#20'PO Output Directory:'#11'ParentColor'#8#0#0 +'chorSideLeft.Control'#7#12'I18NGroupBox'#21'AnchorSideTop.Control'#7#13'PoO'
+#5'TEdit'#12'POOutDirEdit'#22'AnchorSideLeft.Control'#7#12'I18NGroupBox'#21 +'utDirLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Contro'
+'AnchorSideTop.Control'#7#13'PoOutDirLabel'#18'AnchorSideTop.Side'#7#9'asrBo' +'l'#7#14'POOutDirButton'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#26#5'Width'#3
+'ttom'#23'AnchorSideRight.Control'#7#14'POOutDirButton'#4'Left'#2#6#6'Height' +#151#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'
+#2#23#3'Top'#2#26#5'Width'#3#151#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRigh' +#2#6#8'TabOrder'#2#0#4'Text'#6#12'POOutDirEdit'#0#0#7'TButton'#14'POOutDirBu'
+'t'#0#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#0#4'Text'#6#12'POOutDirEdit' +'tton'#21'AnchorSideTop.Control'#7#13'PoOutDirLabel'#18'AnchorSideTop.Side'#7
+#0#0#7'TButton'#14'POOutDirButton'#21'AnchorSideTop.Control'#7#13'PoOutDirLa' +#9'asrBottom'#23'AnchorSideRight.Control'#7#12'I18NGroupBox'#20'AnchorSideRi'
+'bel'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#12 +'ght.Side'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3
+'I18NGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSideBottom.S' +#163#1#6'Height'#2#23#3'Top'#2#26#5'Width'#2#24#7'Anchors'#11#5'akTop'#7'akR'
+'ide'#7#9'asrBottom'#4'Left'#3#163#1#6'Height'#2#23#3'Top'#2#26#5'Width'#2#24 +'ight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#3'...'#7'OnClick'#7#19'PO'
+#7'Anchors'#11#5'akTop'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption' +'OutDirButtonClick'#8'TabOrder'#2#1#0#0#0#9'TCheckBox'#18'EnableI18NCheckBox'
+#6#3'...'#7'OnClick'#7#19'POOutDirButtonClick'#8'TabOrder'#2#1#0#0#0#9'TChec' +#4'Left'#2#6#6'Height'#2#19#3'Top'#2#6#5'Width'#3#197#1#5'Align'#7#5'alTop'
+'kBox'#18'EnableI18NCheckBox'#4'Left'#2#6#6'Height'#2#19#3'Top'#2#6#5'Width' +#20'BorderSpacing.Around'#2#6#7'Caption'#6#11'Enable i18n'#8'OnChange'#7#24
+#3#197#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#11'En' +'EnableI18NCheckBoxChange'#8'TabOrder'#2#1#0#0#0#0#6'TPanel'#11'PODBtnPanel'
+'able i18n'#8'OnChange'#7#24'EnableI18NCheckBoxChange'#8'TabOrder'#2#1#0#0#0 +#6'Height'#2'&'#3'Top'#3#138#1#5'Width'#3#217#1#5'Align'#7#8'alBottom'#8'Aut'
+#0#6'TPanel'#11'PODBtnPanel'#6'Height'#2'&'#3'Top'#3#138#1#5'Width'#3#217#1#5 +'oSize'#9#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'&'#11'ClientWidth'#3
+'Align'#7#8'alBottom'#8'AutoSize'#9#10'BevelOuter'#7#6'bvNone'#12'ClientHeig' ,#217#1#8'TabOrder'#2#1#0#7'TBitBtn'#8'OKButton'#21'AnchorSideBottom.Side'#7#9
+'ht'#2'&'#11'ClientWidth'#3#217#1#8'TabOrder'#2#1#0#7'TBitBtn'#8'OKButton'#21 +'asrBottom'#4'Left'#3'5'#1#6'Height'#2#26#3'Top'#2#6#5'Width'#2'K'#5'Align'#7
+'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'5'#1#6'Height'#2#26#3'Top'#2 +#7'alRight'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#3'&OK'#21
+#6#5'Width'#2'K'#5'Align'#7#7'alRight'#8'AutoSize'#9#20'BorderSpacing.Around' +'Constraints.MinHeight'#2#25#20'Constraints.MinWidth'#2'K'#7'Default'#9#4'Ki'
+#2#6#7'Caption'#6#3'&OK'#21'Constraints.MinHeight'#2#25#20'Constraints.MinWi' +'nd'#7#4'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2#0#8'TabOrder'#2#0#0#0#7'TB'
+'dth'#2'K'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2 +'itBtn'#12'CancelButton'#20'AnchorSideRight.Side'#7#9'asrBottom'#21'AnchorSi'
+#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#12'CancelButton'#20'AnchorSideRight.Side'#7 +'deBottom.Side'#7#9'asrBottom'#4'Left'#3#134#1#6'Height'#2#26#3'Top'#2#6#5'W'
+#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#134#1#6'Hei' +'idth'#2'M'#5'Align'#7#7'alRight'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6
+'ght'#2#26#3'Top'#2#6#5'Width'#2'M'#5'Align'#7#7'alRight'#8'AutoSize'#9#20'B' +#6'Cancel'#9#7'Caption'#6#6'Cancel'#21'Constraints.MinHeight'#2#25#20'Constr'
+'orderSpacing.Around'#2#6#6'Cancel'#9#7'Caption'#6#6'Cancel'#21'Constraints.' +'aints.MinWidth'#2'K'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'NumGlyphs'
+'MinHeight'#2#25#20'Constraints.MinWidth'#2'K'#4'Kind'#7#8'bkCancel'#11'Moda' +#2#0#8'TabOrder'#2#1#0#0#7'TBitBtn'#10'HelpButton'#21'AnchorSideBottom.Side'
+'lResult'#2#2#9'NumGlyphs'#2#0#8'TabOrder'#2#1#0#0#7'TBitBtn'#10'HelpButton' +#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#26#3'Top'#2#6#5'Width'#2'K'#5'Align'
+#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#26#3'Top'#2 +#7#6'alLeft'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#5'&Help'
+#6#5'Width'#2'K'#5'Align'#7#6'alLeft'#8'AutoSize'#9#20'BorderSpacing.Around' +#21'Constraints.MinHeight'#2#25#20'Constraints.MinWidth'#2'K'#4'Kind'#7#6'bk'
+#2#6#7'Caption'#6#5'&Help'#21'Constraints.MinHeight'#2#25#20'Constraints.Min' +'Help'#9'NumGlyphs'#2#0#7'OnClick'#7#15'HelpButtonClick'#8'TabOrder'#2#2#0#0
+'Width'#2'K'#4'Kind'#7#6'bkHelp'#9'NumGlyphs'#2#0#7'OnClick'#7#15'HelpButton' +#0#22'TSelectDirectoryDialog'#21'SelectDirectoryDialog'#11'FilterIndex'#2#0#4
+'Click'#8'TabOrder'#2#2#0#0#0#22'TSelectDirectoryDialog'#21'SelectDirectoryD' +'left'#2'X'#3'top'#3'p'#1#0#0#18'TOpenPictureDialog'#18'OpenPictureDialog1'#4
+'ialog'#11'FilterIndex'#2#0#4'left'#2'X'#3'top'#3'p'#1#0#0#0 +'left'#2'u'#3'top'#3'p'#1#0#0#18'TSavePictureDialog'#18'SavePictureDialog1'#5
+'Title'#6#12'Save file as'#4'left'#3#146#0#3'top'#3'p'#1#0#0#0
]); ]);

View File

@ -41,7 +41,7 @@ uses
FileUtil, IDEContextHelpEdit, EnvironmentOpts, FileUtil, IDEContextHelpEdit, EnvironmentOpts,
IDEWindowIntf, IDEImagesIntf, ProjectIntf, IDEDialogs, IDEWindowIntf, IDEImagesIntf, ProjectIntf, IDEDialogs,
IDEOptionDefs, LazarusIDEStrConsts, Project, IDEProcs, W32VersionInfo, IDEOptionDefs, LazarusIDEStrConsts, Project, IDEProcs, W32VersionInfo,
VersionInfoAdditionalInfo, W32Manifest, ApplicationBundle; VersionInfoAdditionalInfo, W32Manifest, ApplicationBundle, ExtDlgs, base64;
type type
@ -49,11 +49,18 @@ type
TProjectOptionsDialog = class(TForm) TProjectOptionsDialog = class(TForm)
AdditionalInfoButton: TBitBtn; AdditionalInfoButton: TBitBtn;
ClearIconButton: TBitBtn;
SaveIconButton: TBitBtn;
LoadIconButton: TBitBtn;
CopyrightLabel: TLabel;
CreateAppBundleButton: TBitBtn; CreateAppBundleButton: TBitBtn;
DescriptionLabel: TLabel;
FormsAddToAutoCreatedFormsBtn: TSpeedButton; FormsAddToAutoCreatedFormsBtn: TSpeedButton;
FormsMoveAutoCreatedFormsDownBtn: TSpeedButton; FormsMoveAutoCreatedFormsDownBtn: TSpeedButton;
FormsMoveAutoCreatedFormUpBtn: TSpeedButton; FormsMoveAutoCreatedFormUpBtn: TSpeedButton;
FormsRemoveFromAutoCreatedFormsBtn: TSpeedButton; FormsRemoveFromAutoCreatedFormsBtn: TSpeedButton;
IconLabel: TLabel;
IconImage: TImage;
LazDocAddPathButton: TBitBtn; LazDocAddPathButton: TBitBtn;
LazDocDeletePathButton: TBitBtn; LazDocDeletePathButton: TBitBtn;
Notebook: TNotebook; Notebook: TNotebook;
@ -61,7 +68,11 @@ type
FormsPage: TPage; FormsPage: TPage;
MiscPage: TPage; MiscPage: TPage;
LazDocPage: TPage; LazDocPage: TPage;
IconPanel: TPanel;
OpenPictureDialog1: TOpenPictureDialog;
SavePage: TPage; SavePage: TPage;
SavePictureDialog1: TSavePictureDialog;
TitleLabel: TLabel;
VersionInfoPage: TPage; VersionInfoPage: TPage;
i18nPage: TPage; i18nPage: TPage;
@ -69,11 +80,9 @@ type
AppSettingsGroupBox: TGroupBox; AppSettingsGroupBox: TGroupBox;
OutputSettingsGroupBox: TGroupBox; OutputSettingsGroupBox: TGroupBox;
SelectDirectoryDialog: TSelectDirectoryDialog; SelectDirectoryDialog: TSelectDirectoryDialog;
TitleLabel: TLabel;
TitleEdit: TEdit; TitleEdit: TEdit;
TargetFileLabel: TLabel; TargetFileLabel: TLabel;
TargetFileEdit: TEdit; TargetFileEdit: TEdit;
PanelOtherLabels: TPanel;
UseAppBundleCheckBox: TCheckBox; UseAppBundleCheckBox: TCheckBox;
UseXPManifestCheckBox: TCheckBox; UseXPManifestCheckBox: TCheckBox;
@ -124,8 +133,6 @@ type
OtherInfoGroupBox: TGroupBox; OtherInfoGroupBox: TGroupBox;
DescriptionEdit: TEdit; DescriptionEdit: TEdit;
CopyrightEdit: TEdit; CopyrightEdit: TEdit;
DescriptionLabel: TLabel;
CopyrightLabel: TLabel;
AdditionalInfoForm: TVersionInfoAdditinalInfoForm; AdditionalInfoForm: TVersionInfoAdditinalInfoForm;
// i18n // i18n
@ -142,6 +149,7 @@ type
OKButton: TBitBtn; OKButton: TBitBtn;
procedure AdditionalInfoButtonClick(Sender: TObject); procedure AdditionalInfoButtonClick(Sender: TObject);
procedure ClearIconButtonClick(Sender: TObject);
procedure CreateAppBundleButtonClick(Sender: TObject); procedure CreateAppBundleButtonClick(Sender: TObject);
procedure EnableI18NCheckBoxChange(Sender: TObject); procedure EnableI18NCheckBoxChange(Sender: TObject);
procedure FormsPageContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); procedure FormsPageContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
@ -150,6 +158,7 @@ type
procedure LazDocAddPathButtonClick(Sender: TObject); procedure LazDocAddPathButtonClick(Sender: TObject);
procedure LazDocBrowseButtonClick(Sender: TObject); procedure LazDocBrowseButtonClick(Sender: TObject);
procedure LazDocDeletePathButtonClick(Sender: TObject); procedure LazDocDeletePathButtonClick(Sender: TObject);
procedure LoadIconButtonClick(Sender: TObject);
procedure ProjectOptionsClose(Sender: TObject; procedure ProjectOptionsClose(Sender: TObject;
var CloseAction: TCloseAction); var CloseAction: TCloseAction);
procedure FormsAddToAutoCreatedFormsBtnClick(Sender: TObject); procedure FormsAddToAutoCreatedFormsBtnClick(Sender: TObject);
@ -157,6 +166,7 @@ type
procedure FormsMoveAutoCreatedFormUpBtnClick(Sender: TObject); procedure FormsMoveAutoCreatedFormUpBtnClick(Sender: TObject);
procedure FormsMoveAutoCreatedFormDownBtnClick(Sender: TObject); procedure FormsMoveAutoCreatedFormDownBtnClick(Sender: TObject);
procedure POOutDirButtonClick(Sender: TObject); procedure POOutDirButtonClick(Sender: TObject);
procedure SaveIconButtonClick(Sender: TObject);
procedure UseVersionInfoCheckBoxChange(Sender: TObject); procedure UseVersionInfoCheckBoxChange(Sender: TObject);
private private
FProject: TProject; FProject: TProject;
@ -180,6 +190,9 @@ type
function GetProjectTitle: String; function GetProjectTitle: String;
function SetAutoCreateForms: Boolean; function SetAutoCreateForms: Boolean;
function SetProjectTitle: Boolean; function SetProjectTitle: Boolean;
procedure SetIconFromText(Value: String);
function GetIconAsText: String;
public public
constructor Create(TheOwner: TComponent); override; constructor Create(TheOwner: TComponent); override;
property Project: TProject read FProject write SetProject; property Project: TProject read FProject write SetProject;
@ -195,7 +208,6 @@ function LocalizedNameToProjectSessionStorage(
implementation implementation
function ShowProjectOptionsDialog(AProject: TProject): TModalResult; function ShowProjectOptionsDialog(AProject: TProject): TModalResult;
begin begin
with TProjectOptionsDialog.Create(Nil) do with TProjectOptionsDialog.Create(Nil) do
@ -289,6 +301,15 @@ begin
UseXPManifestCheckBox.Checked := False; UseXPManifestCheckBox.Checked := False;
CreateAppBundleButton.Caption := dlgPOCreateAppBundle; CreateAppBundleButton.Caption := dlgPOCreateAppBundle;
CreateAppBundleButton.LoadGlyphFromLazarusResource('pkg_compile'); CreateAppBundleButton.LoadGlyphFromLazarusResource('pkg_compile');
// icon
IconLabel.Caption := dlgPOIcon;
LoadIconButton.Caption := dlgPOLoadIcon;
SaveIconButton.Caption := dlgPOSaveIcon;
ClearIconButton.Caption := dlgPOClearIcon;
LoadIconButton.LoadGlyphFromLazarusResource('open');
SaveIconButton.LoadGlyphFromLazarusResource('menu_save');
ClearIconButton.LoadGlyphFromLazarusResource('menu_clean');
end; end;
procedure TProjectOptionsDialog.SetupLazDocPage(PageIndex: Integer); procedure TProjectOptionsDialog.SetupLazDocPage(PageIndex: Integer);
@ -399,6 +420,7 @@ begin
UseAppBundleCheckBox.Checked := UseAppBundle; UseAppBundleCheckBox.Checked := UseAppBundle;
UseXPManifestCheckBox.Checked := XPManifest.UseManifest; UseXPManifestCheckBox.Checked := XPManifest.UseManifest;
UseVersionInfoCheckBox.Checked := VersionInfo.UseVersionInfo; UseVersionInfoCheckBox.Checked := VersionInfo.UseVersionInfo;
SetIconFromText(Icon);
end; end;
FillAutoCreateFormsListbox; FillAutoCreateFormsListbox;
FillAvailFormsListBox; FillAvailFormsListBox;
@ -471,8 +493,8 @@ var
begin begin
if ModalResult = mrOk then if ModalResult = mrOk then
begin begin
Project.Title := TitleEdit.Text; Project.Title := TitleEdit.Text;
Project.Icon := GetIconAsText;
Project.TargetFilename := TargetFileEdit.Text; Project.TargetFilename := TargetFileEdit.Text;
Project.UseAppBundle := UseAppBundleCheckBox.Checked; Project.UseAppBundle := UseAppBundleCheckBox.Checked;
Project.XPManifest.UseManifest := UseXPManifestCheckBox.Checked; Project.XPManifest.UseManifest := UseXPManifestCheckBox.Checked;
@ -565,6 +587,11 @@ begin
Project.Modified:=true; Project.Modified:=true;
end; end;
procedure TProjectOptionsDialog.ClearIconButtonClick(Sender: TObject);
begin
IconImage.Picture.Clear;
end;
procedure TProjectOptionsDialog.CreateAppBundleButtonClick(Sender: TObject); procedure TProjectOptionsDialog.CreateAppBundleButtonClick(Sender: TObject);
begin begin
CreateProjectApplicationBundle(Project); CreateProjectApplicationBundle(Project);
@ -587,6 +614,12 @@ begin
LazDocListBox.Items.Delete(LazDocListBox.ItemIndex); LazDocListBox.Items.Delete(LazDocListBox.ItemIndex);
end; end;
procedure TProjectOptionsDialog.LoadIconButtonClick(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
IconImage.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
function TProjectOptionsDialog.GetAutoCreatedFormsList: TStrings; function TProjectOptionsDialog.GetAutoCreatedFormsList: TStrings;
var var
i, j: Integer; i, j: Integer;
@ -816,6 +849,12 @@ begin
POOutDirEdit.Text:=NewDirectory; POOutDirEdit.Text:=NewDirectory;
end; end;
procedure TProjectOptionsDialog.SaveIconButtonClick(Sender: TObject);
begin
if SavePictureDialog1.Execute then
IconImage.Picture.SaveToFile(SavePictureDialog1.FileName);
end;
procedure TProjectOptionsDialog.UseVersionInfoCheckBoxChange(Sender: TObject); procedure TProjectOptionsDialog.UseVersionInfoCheckBoxChange(Sender: TObject);
begin begin
EnableVersionInfo(UseVersionInfoCheckBox.Checked); EnableVersionInfo(UseVersionInfoCheckBox.Checked);
@ -906,6 +945,45 @@ begin
end;// delete title end;// delete title
end; end;
procedure TProjectOptionsDialog.SetIconFromText(Value: String);
var
S: TStringStream;
BS: TBase64DecodingStream;
begin
IconImage.Picture.Clear;
if Value <> '' then
begin
S := TStringStream.Create(Value);
S.Position := 0;
BS := TBase64DecodingStream.Create(S);
try
IconImage.Picture.Icon.LoadFromStream(BS);
except
on E: Exception do
MessageDlg(E.Message, mtError, [mbOk], 0);
end;
BS.Free;
S.Free;
end;
end;
function TProjectOptionsDialog.GetIconAsText: String;
var
S: TStringStream;
BS: TBase64EncodingStream;
begin
Result := '';
if not ((IconImage.Picture.Graphic = nil) or IconImage.Picture.Graphic.Empty) then
begin
S := TStringStream.Create('');
BS := TBase64EncodingStream.Create(S);
IconImage.Picture.Icon.SaveToStream(BS);
BS.Free;
Result := S.DataString;
S.Free;
end;
end;
initialization initialization
{$I projectopts.lrs} {$I projectopts.lrs}

View File

@ -531,7 +531,8 @@ type
fModified: boolean; fModified: boolean;
FProjectSessionFile: string; FProjectSessionFile: string;
FSessionModified: boolean; FSessionModified: boolean;
fTitle: String; FTitle: String;
FIcon: String;
FSessionStorage: TProjectSessionStorage; FSessionStorage: TProjectSessionStorage;
FLazDocPaths: string; FLazDocPaths: string;
procedure SetLazDocPaths(const AValue: string); procedure SetLazDocPaths(const AValue: string);
@ -542,6 +543,7 @@ type
function GetMainFileID: Integer; virtual; abstract; function GetMainFileID: Integer; virtual; abstract;
procedure SetMainFileID(const AValue: Integer); virtual; abstract; procedure SetMainFileID(const AValue: Integer); virtual; abstract;
function GetFiles(Index: integer): TLazProjectFile; virtual; abstract; function GetFiles(Index: integer): TLazProjectFile; virtual; abstract;
procedure SetIcon(const AValue: String); virtual;
procedure SetTitle(const AValue: String); virtual; procedure SetTitle(const AValue: String); virtual;
procedure SetFlags(const AValue: TProjectFlags); virtual; procedure SetFlags(const AValue: TProjectFlags); virtual;
function GetProjectInfoFile: string; virtual; abstract; function GetProjectInfoFile: string; virtual; abstract;
@ -574,7 +576,8 @@ type
property Files[Index: integer]: TLazProjectFile read GetFiles; property Files[Index: integer]: TLazProjectFile read GetFiles;
property FileCount: integer read GetFileCount; property FileCount: integer read GetFileCount;
property MainFile: TLazProjectFile read GetMainFile; property MainFile: TLazProjectFile read GetMainFile;
property Title: String read fTitle write SetTitle; property Title: String read FTitle write SetTitle;
property Icon: string read FIcon write SetIcon;
property Flags: TProjectFlags read FFlags write SetFlags; property Flags: TProjectFlags read FFlags write SetFlags;
property ExecutableType: TProjectExecutableType read FExecutableType property ExecutableType: TProjectExecutableType read FExecutableType
write SetExecutableType;// read from MainFile, not saved to lpi write SetExecutableType;// read from MainFile, not saved to lpi
@ -1067,6 +1070,7 @@ end;
function TProjectDescriptor.InitProject(AProject: TLazProject): TModalResult; function TProjectDescriptor.InitProject(AProject: TLazProject): TModalResult;
begin begin
AProject.Title:='project1'; AProject.Title:='project1';
// TODO: AProject.Icon := default icon
AProject.Flags:=Flags; AProject.Flags:=Flags;
Result:=mrOk; Result:=mrOk;
end; end;
@ -1133,8 +1137,15 @@ end;
procedure TLazProject.SetTitle(const AValue: String); procedure TLazProject.SetTitle(const AValue: String);
begin begin
if fTitle=AValue then exit; if FTitle=AValue then exit;
fTitle:=AValue; FTitle:=AValue;
Modified:=true;
end;
procedure TLazProject.SetIcon(const AValue: String);
begin
if FIcon=AValue then exit;
FIcon:=AValue;
Modified:=true; Modified:=true;
end; end;