implemented saving project session file

git-svn-id: trunk@8667 -
This commit is contained in:
mattias 2006-01-30 22:01:34 +00:00
parent dda6ac61bc
commit bc8633f602
14 changed files with 873 additions and 629 deletions

View File

@ -1,18 +1,15 @@
{ Copyright (C) 2003 Michael Van Canneyt
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program 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 Library General Public License
for more details.
You should have received a copy of the GNU Library General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*****************************************************************************
* *
* See the file COPYING.modifiedLGPL, included in this distribution, *
* for details about the copyright. *
* *
* This program 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. *
* *
*****************************************************************************
}
unit cgiModules;
@ -48,6 +45,7 @@ Type
TCGIDataModuleClass = Class of TCGIDatamodule;
TModuledCGIApplication = Class(TCGIApplication)
private
FMainModule : TCGIDatamodule;
public
Procedure CreateForm(AClass: TCGIDataModuleClass;
@ -73,6 +71,7 @@ ResourceString
function InitResourceComponent(Instance: TComponent;
RootAncestor: TClass): Boolean;
begin
writeln('AAA');
Result:=InitLazResourceComponent(Instance,RootAncestor);
end;
@ -81,6 +80,7 @@ end;
procedure TModuledCGIApplication.CreateForm(AClass: TCGIDataModuleClass;
Var Reference: TCGIDataModule);
begin
writeln('TModuledCGIApplication.CreateForm ',AClass.CLassName);
Reference:=AClass.CreateNew(Self,0);
If FMainModule=Nil then
FMainModule:=Reference;

View File

@ -136,8 +136,10 @@ begin
Result:= mrOK;
end;
function TCGIApplicationDescriptor.CreateStartFiles(AProject: TLazProject): TModalResult;
function TCGIApplicationDescriptor.CreateStartFiles(
AProject: TLazProject): TModalResult;
begin
if AProject=nil then ;
LazarusIDE.DoNewEditorFile(FileDescriptorCGIModule,'','',
[nfIsPartOfProject,nfOpenInEditor,nfCreateDefaultSrc]);
Result:= mrOK;

View File

@ -117,6 +117,11 @@ begin
end;
end;
function GetProjectSessionsConfigPath: String;
begin
Result:=AppendPathDelim(GetPrimaryConfigPath)+'projectsessions';
end;
{---------------------------------------------------------------------------
function CreateCompilerTestPascalFilename: string;
---------------------------------------------------------------------------}

View File

@ -1115,6 +1115,7 @@ resourcestring
+'maintained by lazarus.';
dlgPOFroms = 'Forms';
dlgPOMisc = 'Miscellaneous';
dlgPOSaveSession = 'Session';
dlgApplicationSettings = 'Application Settings';
dlgPOTitle = 'Title:';
dlgPOOutputSettings = 'Output Settings';
@ -2944,6 +2945,12 @@ resourcestring
lisCTSelectCodeMacro = 'Select Code Macro';
lisPDProgress = 'Progress';
lisPDAbort = 'Abort';
lisPOSaveInLpiFil = 'Save in .lpi file';
lisPOSaveInLpsFileInProjectDirectory = 'Save in .lps file in project '
+'directory';
lisPOSaveInIDEConfigDirectory = 'Save in IDE config directory';
lisPODoNotSaveAnySessionInfo = 'Do not save any session info';
lisPOSaveSessionInformationIn = 'Save session information in';
implementation
end.

View File

@ -82,7 +82,8 @@ const
procedure SetPrimaryConfigPath(const NewValue: String);
procedure SetSecondaryConfigPath(const NewValue: String);
procedure CopySecondaryConfigFile(const AFilename: String);
function GetProjectSessionsConfigPath: String;
function GetDefaultTestBuildDirectory: string;
function FindDefaultExecutablePath(const Executable: string): string;

View File

@ -901,7 +901,7 @@ const
p: String;
begin
p:=ParamStr(ParamIndex);
Result:=AnsiCompareText(LeftStr(p,length(Option)),Option)=0;
Result:=CompareText(LeftStr(p,length(Option)),Option)=0;
if Result then
AValue:=copy(p,length(Option)+1,length(p))
else
@ -917,10 +917,10 @@ begin
StartedByStartLazarus:=false;
SkipAutoLoadingLastProject:=false;
if (ParamCount>0)
and ((AnsiCompareText(ParamStr(1),'--help')=0)
or (AnsiCompareText(ParamStr(1),'-help')=0)
or (AnsiCompareText(ParamStr(1),'-?')=0)
or (AnsiCompareText(ParamStr(1),'-h')=0)) then
and ((CompareText(ParamStr(1),'--help')=0)
or (CompareText(ParamStr(1),'-help')=0)
or (CompareText(ParamStr(1),'-?')=0)
or (CompareText(ParamStr(1),'-h')=0)) then
begin
TranslateResourceStrings(ProgramDirectory,'');
writeln(lislazarusOptionsProjectFilename);
@ -996,7 +996,7 @@ begin
SetLazarusDefaultFilename;
Load(false);
if Application.HasOption('language') then begin
debugln('TMainIDE.LoadGlobalOptions overriding language from command line: ',
debugln('TMainIDE.LoadGlobalOptions overriding language with command line: ',
Application.GetOptionValue('language'));
EnvironmentOptions.LanguageID:=Application.GetOptionValue('language');
end;
@ -1033,6 +1033,8 @@ begin
SetLazarusDefaultFilename;
Load;
end;
CreateDir(GetProjectSessionsConfigPath);
end;
constructor TMainIDE.Create(TheOwner: TComponent);

View File

@ -1,33 +1,33 @@
object MakeResStrDialog: TMakeResStrDialog
Left = 439
Height = 541
Height = 536
Top = 319
Width = 579
HorzScrollBar.Page = 578
VertScrollBar.Page = 540
Width = 578
HorzScrollBar.Page = 577
VertScrollBar.Page = 535
ActiveControl = StringConstSynEdit
Caption = 'MakeResStrDialog'
ClientHeight = 541
ClientWidth = 579
PixelsPerInch = 112
ClientHeight = 536
ClientWidth = 578
PixelsPerInch = 95
Position = poScreenCenter
object StringConstGroupBox: TGroupBox
Left = 6
Height = 141
Top = 165
Width = 567
Width = 566
Align = alTop
BorderSpacing.Around = 6
Caption = 'StringConstGroupBox'
ClientHeight = 124
ClientWidth = 563
ClientWidth = 562
TabOrder = 0
object StringConstSynEdit: TSynEdit
Name = 'StringConstSynEdit'
Left = 6
Height = 112
Top = 6
Width = 551
Width = 550
Align = alClient
BorderSpacing.Around = 6
Font.CharSet = ANSI_CHARSET
@ -38,7 +38,9 @@ object MakeResStrDialog: TMakeResStrDialog
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = -18
BookMarkOptions.OnChange = nil
Gutter.Visible = False
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn
Keystrokes = <
@ -365,19 +367,20 @@ object MakeResStrDialog: TMakeResStrDialog
Lines.Strings = (
'StringConstSynEdit'
)
SelectedColor.OnChange = nil
end
end
object ConversionGroupBox: TGroupBox
Left = 6
Height = 153
Top = 6
Width = 567
Width = 566
Align = alTop
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 6
Caption = 'ConversionGroupBox'
ClientHeight = 136
ClientWidth = 563
ClientWidth = 562
TabOrder = 1
object IdentPrefixLabel: TLabel
Left = 12
@ -392,7 +395,7 @@ object MakeResStrDialog: TMakeResStrDialog
end
object IdentLengthLabel: TLabel
AnchorSideRight.Control = IdentLengthComboBox
Left = 354
Left = 353
Height = 13
Top = 8
Width = 97
@ -479,7 +482,7 @@ object MakeResStrDialog: TMakeResStrDialog
Text = 'IdentPrefixComboBox'
end
object IdentLengthComboBox: TComboBox
Left = 457
Left = 456
Height = 21
Top = 5
Width = 100
@ -511,7 +514,7 @@ object MakeResStrDialog: TMakeResStrDialog
Left = 190
Height = 23
Top = 33
Width = 367
Width = 366
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
@ -530,7 +533,7 @@ object MakeResStrDialog: TMakeResStrDialog
Left = 128
Height = 21
Top = 62
Width = 429
Width = 428
Anchors = [akTop, akLeft, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
BorderSpacing.Left = 6
@ -550,7 +553,7 @@ object MakeResStrDialog: TMakeResStrDialog
Left = 174
Height = 21
Top = 89
Width = 383
Width = 382
Anchors = [akTop, akLeft, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
BorderSpacing.Left = 6
@ -563,23 +566,23 @@ object MakeResStrDialog: TMakeResStrDialog
end
object SrcPreviewGroupBox: TGroupBox
Left = 6
Height = 182
Height = 177
Top = 312
Width = 567
Width = 566
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
Caption = 'SrcPreviewGroupBox'
ClientHeight = 165
ClientWidth = 563
ClientHeight = 160
ClientWidth = 562
TabOrder = 2
OnResize = IdentPrefixLabelResize
object SrcPreviewSynEdit: TSynEdit
Name = 'SrcPreviewSynEdit'
Left = 6
Height = 153
Height = 148
Top = 6
Width = 551
Width = 550
Align = alClient
BorderSpacing.Around = 6
Font.CharSet = ANSI_CHARSET
@ -590,7 +593,9 @@ object MakeResStrDialog: TMakeResStrDialog
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = -18
BookMarkOptions.OnChange = nil
Gutter.Visible = False
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn
Keystrokes = <
@ -917,12 +922,13 @@ object MakeResStrDialog: TMakeResStrDialog
Lines.Strings = (
'SrcPreviewSynEdit'
)
SelectedColor.OnChange = nil
end
end
object OKButton: TBitBtn
Left = 522
Left = 521
Height = 28
Top = 507
Top = 502
Width = 51
Anchors = [akRight, akBottom]
AutoSize = True
@ -937,9 +943,9 @@ object MakeResStrDialog: TMakeResStrDialog
end
object CancelButton: TBitBtn
AnchorSideRight.Control = OKButton
Left = 443
Left = 442
Height = 28
Top = 507
Top = 502
Width = 73
Anchors = [akRight, akBottom]
AutoSize = True

View File

@ -2,71 +2,72 @@
LazarusResources.Add('TMakeResStrDialog','FORMDATA',[
'TPF0'#17'TMakeResStrDialog'#16'MakeResStrDialog'#4'Left'#3#183#1#6'Height'#3
+#29#2#3'Top'#3'?'#1#5'Width'#3'C'#2#18'HorzScrollBar.Page'#3'B'#2#18'VertScr'
+'ollBar.Page'#3#28#2#13'ActiveControl'#7#18'StringConstSynEdit'#7'Caption'#6
+#16'MakeResStrDialog'#12'ClientHeight'#3#29#2#11'ClientWidth'#3'C'#2#13'Pixe'
+'lsPerInch'#2'p'#8'Position'#7#14'poScreenCenter'#0#9'TGroupBox'#19'StringCo'
+'nstGroupBox'#4'Left'#2#6#6'Height'#3#141#0#3'Top'#3#165#0#5'Width'#3'7'#2#5
+#24#2#3'Top'#3'?'#1#5'Width'#3'B'#2#18'HorzScrollBar.Page'#3'A'#2#18'VertScr'
+'ollBar.Page'#3#23#2#13'ActiveControl'#7#18'StringConstSynEdit'#7'Caption'#6
+#16'MakeResStrDialog'#12'ClientHeight'#3#24#2#11'ClientWidth'#3'B'#2#13'Pixe'
+'lsPerInch'#2'_'#8'Position'#7#14'poScreenCenter'#0#9'TGroupBox'#19'StringCo'
+'nstGroupBox'#4'Left'#2#6#6'Height'#3#141#0#3'Top'#3#165#0#5'Width'#3'6'#2#5
+'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#19'StringConstG'
+'roupBox'#12'ClientHeight'#2'|'#11'ClientWidth'#3'3'#2#8'TabOrder'#2#0#0#8'T'
+'roupBox'#12'ClientHeight'#2'|'#11'ClientWidth'#3'2'#2#8'TabOrder'#2#0#0#8'T'
+'SynEdit'#18'StringConstSynEdit'#4'Name'#6#18'StringConstSynEdit'#4'Left'#2#6
+#6'Height'#2'p'#3'Top'#2#6#5'Width'#3''''#2#5'Align'#7#8'alClient'#20'Border'
+'Spacing.Around'#2#6#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7
+'clBlack'#11'Font.Height'#2#243#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7
+#6'Height'#2'p'#3'Top'#2#6#5'Width'#3'&'#2#5'Align'#7#8'alClient'#20'BorderS'
+'pacing.Around'#2#6#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'c'
+'lBlack'#11'Font.Height'#2#243#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7
+'fpFixed'#11'ParentColor'#8#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2#238
+#14'Gutter.Visible'#8#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#9'S'
+'ynPasSyn'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'
+#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Comma'
+'nd'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Comman'
+'d'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Comm'
+'and'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Comm'
+'and'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Comm'
+'and'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Co'
+'mmand'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'C'
+'ommand'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7
+'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'C'
+'ommand'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7
+'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'C'
+'ommand'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7
+'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'C'
+'ommand'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7
+'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1
+#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '
+#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3
+'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'C'
+'ommand'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0
+#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3
+'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'Short'
+'Cut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8
+'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['
+#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'
+#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Com'
+'mand'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7
+'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0
+#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4'
+'@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'
+#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'Short'
+'Cut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8
+'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'
+#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3
+'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Comman'
+'d'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'C'
+'ommand'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1
+#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C'
+'`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCu'
+'t'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'Sh'
+'ortCut'#3'B`'#0#0#13'Lines.Strings'#1#6#18'StringConstSynEdit'#0#0#0#0#9'TG'
+'roupBox'#18'ConversionGroupBox'#4'Left'#2#6#6'Height'#3#153#0#3'Top'#2#6#5
+'Width'#3'7'#2#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#25'BorderSpa'
+'cing.InnerBorder'#2#6#7'Caption'#6#18'ConversionGroupBox'#12'ClientHeight'#3
+#136#0#11'ClientWidth'#3'3'#2#8'TabOrder'#2#1#0#6'TLabel'#16'IdentPrefixLabe'
+'l'#4'Left'#2#12#6'Height'#2#13#3'Top'#2#8#5'Width'#2'Z'#9'Alignment'#7#14't'
+'aRightJustify'#7'Caption'#6#16'IdentPrefixLabel'#5'Color'#7#6'clNone'#11'Pa'
+'rentColor'#8#8'OnResize'#7#22'IdentPrefixLabelResize'#0#0#6'TLabel'#16'Iden'
,'tLengthLabel'#23'AnchorSideRight.Control'#7#19'IdentLengthComboBox'#4'Left'
+#3'b'#1#6'Height'#2#13#3'Top'#2#8#5'Width'#2'a'#9'Alignment'#7#14'taRightJus'
+#24'BookMarkOptions.OnChange'#13#14'Gutter.Visible'#8#15'Gutter.OnChange'#13
+#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#9'SynPasSyn'#10'Keystrok'
+'es'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3
+'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'
+#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCu'
+'t'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'
+#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3
+'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3
+''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3
+'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3
+'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3
+'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'!'
+' '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3
+'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$'
+' '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3
+'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'#'
+' '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3
+'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortC'
+'ut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8
+'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245
+#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3
+#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7
+'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2
+#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortC'
+'ut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8
+'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3
+#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Comma'
+'nd'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7
+'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3
+'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCu'
+'t'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'Sh'
+'ortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1
+#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3
+'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Comman'
+'d'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'C'
+'ommand'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1
+#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'
+#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3
+'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCu'
+'t'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'S'
+'hortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233
+#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3
+'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#13'Lin'
+'es.Strings'#1#6#18'StringConstSynEdit'#0#22'SelectedColor.OnChange'#13#0#0#0
+#9'TGroupBox'#18'ConversionGroupBox'#4'Left'#2#6#6'Height'#3#153#0#3'Top'#2#6
+#5'Width'#3'6'#2#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#25'BorderS'
+'pacing.InnerBorder'#2#6#7'Caption'#6#18'ConversionGroupBox'#12'ClientHeight'
+#3#136#0#11'ClientWidth'#3'2'#2#8'TabOrder'#2#1#0#6'TLabel'#16'IdentPrefixLa'
+'bel'#4'Left'#2#12#6'Height'#2#13#3'Top'#2#8#5'Width'#2'Z'#9'Alignment'#7#14
+'taRightJustify'#7'Caption'#6#16'IdentPrefixLabel'#5'Color'#7#6'clNone'#11'P'
,'arentColor'#8#8'OnResize'#7#22'IdentPrefixLabelResize'#0#0#6'TLabel'#16'Ide'
+'ntLengthLabel'#23'AnchorSideRight.Control'#7#19'IdentLengthComboBox'#4'Left'
+#3'a'#1#6'Height'#2#13#3'Top'#2#8#5'Width'#2'a'#9'Alignment'#7#14'taRightJus'
+'tify'#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#6#7'Cap'
+'tion'#6#16'IdentLengthLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#6'T'
+'Label'#18'ResStrSectionLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'
@ -96,7 +97,7 @@ LazarusResources.Add('TMakeResStrDialog','FORMDATA',[
+'EndOfLineComplete'#20'cbactSearchAscending'#0#20'BorderSpacing.Around'#2#6#9
+'MaxLength'#2#0#8'OnChange'#7#25'IdentPrefixComboBoxChange'#8'TabOrder'#2#3#4
+'Text'#6#19'IdentPrefixComboBox'#0#0#9'TComboBox'#19'IdentLengthComboBox'#4
+'Left'#3#201#1#6'Height'#2#21#3'Top'#2#5#5'Width'#2'd'#7'Anchors'#11#5'akTop'
+'Left'#3#200#1#6'Height'#2#21#3'Top'#2#5#5'Width'#2'd'#7'Anchors'#11#5'akTop'
+#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSea'
+'rchAscending'#0#9'MaxLength'#2#0#8'OnChange'#7#25'IdentLengthComboBoxChange'
+#8'TabOrder'#2#4#4'Text'#6#19'IdentLengthComboBox'#0#0#9'TCheckBox'#24'Custo'
@ -108,14 +109,14 @@ LazarusResources.Add('TMakeResStrDialog','FORMDATA',[
+#7#9'asrBottom'#21'AnchorSideTop.Control'#7#19'IdentPrefixComboBox'#18'Ancho'
+'rSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#19'IdentLengthC'
+'omboBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#190#0#6'Height'#2
+#23#3'Top'#2'!'#5'Width'#3'o'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0
+#23#3'Top'#2'!'#5'Width'#3'n'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0
+#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#7'Enabled'#8#8'OnChang'
+'e'#7#20'IdentifierEditChange'#8'TabOrder'#2#6#4'Text'#6#14'IdentifierEdit'#0
+#0#9'TComboBox'#21'ResStrSectionComboBox'#22'AnchorSideLeft.Control'#7#18'Re'
+'sStrSectionLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.C'
+'ontrol'#7#14'IdentifierEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Ancho'
+'rSideRight.Control'#7#14'IdentifierEdit'#20'AnchorSideRight.Side'#7#9'asrBo'
+'ttom'#4'Left'#3#128#0#6'Height'#2#21#3'Top'#2'>'#5'Width'#3#173#1#7'Anchors'
+'ttom'#4'Left'#3#128#0#6'Height'#2#21#3'Top'#2'>'#5'Width'#3#172#1#7'Anchors'
+#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLin'
+'eComplete'#20'cbactSearchAscending'#0#18'BorderSpacing.Left'#2#6#17'BorderS'
+'pacing.Top'#2#6#9'MaxLength'#2#0#8'OnChange'#7#27'ResStrSectionComboBoxChan'
@ -124,73 +125,74 @@ LazarusResources.Add('TMakeResStrDialog','FORMDATA',[
+'eValueLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contro'
+'l'#7#21'ResStrSectionComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'Anc'
+'horSideRight.Control'#7#21'ResStrSectionComboBox'#20'AnchorSideRight.Side'#7
+#9'asrBottom'#4'Left'#3#174#0#6'Height'#2#21#3'Top'#2'Y'#5'Width'#3''#1#7'A'
+#9'asrBottom'#4'Left'#3#174#0#6'Height'#2#21#3'Top'#2'Y'#5'Width'#3'~'#1#7'A'
+'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbact'
+'EndOfLineComplete'#20'cbactSearchAscending'#0#18'BorderSpacing.Left'#2#6#17
+'BorderSpacing.Top'#2#6#9'MaxLength'#2#0#8'OnChange'#7'"ResStrWithSameValues'
+'ComboboxChange'#8'TabOrder'#2#8#4'Text'#6#28'ResStrWithSameValuesCombobox'#0
,#0#0#9'TGroupBox'#18'SrcPreviewGroupBox'#4'Left'#2#6#6'Height'#3#182#0#3'Top'
+#3'8'#1#5'Width'#3'7'#2#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'#6'akLeft'
,'ComboboxChange'#8'TabOrder'#2#8#4'Text'#6#28'ResStrWithSameValuesCombobox'#0
+#0#0#9'TGroupBox'#18'SrcPreviewGroupBox'#4'Left'#2#6#6'Height'#3#177#0#3'Top'
+#3'8'#1#5'Width'#3'6'#2#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'SrcPr'
+'eviewGroupBox'#12'ClientHeight'#3#165#0#11'ClientWidth'#3'3'#2#8'TabOrder'#2
+'eviewGroupBox'#12'ClientHeight'#3#160#0#11'ClientWidth'#3'2'#2#8'TabOrder'#2
+#2#8'OnResize'#7#22'IdentPrefixLabelResize'#0#8'TSynEdit'#17'SrcPreviewSynEd'
+'it'#4'Name'#6#17'SrcPreviewSynEdit'#4'Left'#2#6#6'Height'#3#153#0#3'Top'#2#6
+#5'Width'#3''''#2#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#12'Fon'
+'t.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2
+'it'#4'Name'#6#17'SrcPreviewSynEdit'#4'Left'#2#6#6'Height'#3#148#0#3'Top'#2#6
+#5'Width'#3'&'#2#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#12'Font'
+'.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2
+#243#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8
+#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2#238#14'Gutter.Visible'#8#23'G'
+'utter.CodeFoldingWidth'#2#14#11'Highlighter'#7#9'SynPasSyn'#10'Keystrokes'
+#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0
+#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0
+#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'
+#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0
+#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1
+#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1
+#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1
+#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#13'Lines.Strings'#1#6#17
+'SrcPreviewSynEdit'#0#0#0#0#7'TBitBtn'#8'OKButton'#4'Left'#3#10#2#6'Height'#2
+#28#3'Top'#3#251#1#5'Width'#2'3'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'Au'
+'toSize'#9#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#3'&OK'#7'Default'#9
+#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#13'OkBu'
+'ttonClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#12'CancelButton'#23'AnchorSideRig'
+'ht.Control'#7#8'OKButton'#4'Left'#3#187#1#6'Height'#2#28#3'Top'#3#251#1#5'W'
+'idth'#2'I'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#19'BorderSp'
+'acing.Right'#2#6#25'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Caption'#6
+#6'Cancel'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'NumGlyphs'#2#0#7'OnCl'
+'ick'#7#17'CancelButtonClick'#8'TabOrder'#2#4#0#0#10'TSynPasSyn'#9'SynPasSyn'
+#7'Enabled'#8#4'left'#3';'#1#3'top'#2#10#0#0#0
+#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2#238#24'BookMarkOptions.OnChan'
+'ge'#13#14'Gutter.Visible'#8#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWid'
+'th'#2#14#11'Highlighter'#7#9'SynPasSyn'#10'Keystrokes'#14#1#7'Command'#2#3#8
+'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0
+#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8
+'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1
+#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8
+'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8
+'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8
+'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10
+#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8
+'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8
+'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8
+'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
+'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
+'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
+'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
+'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#13'Lines.Strings'#1#6#17'SrcPrevie'
+'wSynEdit'#0#22'SelectedColor.OnChange'#13#0#0#0#7'TBitBtn'#8'OKButton'#4'Le'
+'ft'#3#9#2#6'Height'#2#28#3'Top'#3#246#1#5'Width'#2'3'#7'Anchors'#11#7'akRig'
+'ht'#8'akBottom'#0#8'AutoSize'#9#25'BorderSpacing.InnerBorder'#2#2#7'Caption'
+#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2#0
+#7'OnClick'#7#13'OkButtonClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#12'CancelButt'
+'on'#23'AnchorSideRight.Control'#7#8'OKButton'#4'Left'#3#186#1#6'Height'#2#28
+#3'Top'#3#246#1#5'Width'#2'I'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoS'
+'ize'#9#19'BorderSpacing.Right'#2#6#25'BorderSpacing.InnerBorder'#2#2#6'Canc'
+'el'#9#7'Caption'#6#6'Cancel'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'Nu'
,'mGlyphs'#2#0#7'OnClick'#7#17'CancelButtonClick'#8'TabOrder'#2#4#0#0#10'TSyn'
+'PasSyn'#9'SynPasSyn'#7'Enabled'#8#4'left'#3';'#1#3'top'#2#10#0#0#0
]);

View File

@ -494,6 +494,7 @@ type
procedure SetTargetFilename(const NewTargetFilename: string);
procedure SetMainUnitID(const AValue: Integer);
procedure UpdateProjectDirectory;
procedure UpdateSessionFilename;
procedure UpdateSourceDirectories;
procedure ClearSourceDirectories;
procedure SourceDirectoriesChanged(Sender: TObject);
@ -531,7 +532,7 @@ type
function SomethingModified(CheckData, CheckSession: boolean): boolean;
procedure MainSourceFilenameChanged;
procedure GetUnitsChangedOnDisk(var AnUnitList: TList);
function ReadProject(const LPIFilename: string): TModalResult;
function ReadProject(const NewProjectInfoFile: string): TModalResult;
function WriteProject(ProjectWriteFlags: TProjectWriteFlags;
const OverrideProjectInfoFile: string): TModalResult;
@ -1390,6 +1391,7 @@ begin
FJumpHistory.OnLoadSaveFilename:=@OnLoadSaveFilename;
fMainUnitID := -1;
fProjectInfoFile := '';
ProjectSessionFile:='';
FSourceDirectories:=TFileReferenceList.Create;
FSourceDirectories.OnChanged:=@SourceDirectoriesChanged;
@ -1426,12 +1428,8 @@ end;
------------------------------------------------------------------------------}
function TProject.WriteProject(ProjectWriteFlags: TProjectWriteFlags;
const OverrideProjectInfoFile: string): TModalResult;
var
confPath: String;
Path: String;
xmlconfig: TXMLConfig;
procedure SaveFlags;
procedure SaveFlags(XMLConfig: TXMLConfig; const Path: string);
var f: TProjectFlag;
begin
for f:=Low(TProjectFlag) to High(TProjectFlag) do begin
@ -1440,14 +1438,14 @@ var
end;
end;
procedure UpdateUsageCounts;
procedure UpdateUsageCounts(const ConfigFilename: string);
var
UnitUsageCount: extended;
DiffTime: TDateTime;
i: Integer;
begin
UnitUsageCount:=0;
if CompareFileNames(confPath,fLastReadLPIFilename)=0 then begin
if CompareFileNames(ConfigFilename,fLastReadLPIFilename)=0 then begin
DiffTime:=Now-fLastReadLPIFileDate;
if DiffTime>0 then begin
UnitUsageCount:= DiffTime*24; // one step every hour
@ -1464,10 +1462,13 @@ var
end;
end;
function UnitMustBeSaved(i: integer): boolean;
function UnitMustBeSaved(i: integer; SaveData, SaveSession: boolean): boolean;
begin
Result:=false;
if not Units[i].IsPartOfProject then begin
if Units[i].IsPartOfProject then begin
if not SaveData then exit;
end else begin
if not SaveSession then exit;
if (pfSaveOnlyProjectUnits in Flags) then exit;
if (pwfSaveOnlyProjectUnits in ProjectWriteFlags) then exit;
if (not Units[i].Loaded) then begin
@ -1479,12 +1480,13 @@ var
Result:=true;
end;
procedure SaveUnits;
procedure SaveUnits(XMLConfig: TXMLConfig; const Path: string;
SaveData, SaveSession: boolean);
var i, SaveUnitCount: integer;
begin
SaveUnitCount:=0;
for i:=0 to UnitCount-1 do begin
if UnitMustBeSaved(i) then begin
if UnitMustBeSaved(i,SaveData,SaveSession) then begin
Units[i].SaveToXMLConfig(
xmlconfig,Path+'Units/Unit'+IntToStr(SaveUnitCount)+'/');
inc(SaveUnitCount);
@ -1493,25 +1495,48 @@ var
xmlconfig.SetDeleteValue(Path+'Units/Count',SaveUnitCount,0);
end;
procedure SaveSessionInfo(aConfig: TXMLConfig; const Path: string);
begin
aConfig.SetDeleteValue(Path+'General/ActiveEditorIndexAtStart/Value',
ActiveEditorIndexAtStart,-1);
if (not (pfSaveOnlyProjectUnits in Flags))
and (not (pwfSkipJumpPoints in ProjectWriteFlags)) then begin
FJumpHistory.DeleteInvalidPositions;
FJumpHistory.SaveToXMLConfig(aConfig,Path);
end;
end;
var
CfgFilename: String;
Path: String;
xmlconfig: TXMLConfig;
SaveSessionInfoInLPI: Boolean;
CurSessionFilename: String;
begin
Result := mrCancel;
if OverrideProjectInfoFile<>'' then
confPath := OverrideProjectInfoFile
CfgFilename := OverrideProjectInfoFile
else
confPath := ProjectInfoFile;
CfgFilename := ProjectInfoFile;
if Assigned(fOnFileBackup) then begin
Result:=fOnFileBackup(confPath,true);
Result:=fOnFileBackup(CfgFilename,true);
if Result=mrAbort then exit;
end;
confPath:=SetDirSeparators(confPath);
CfgFilename:=SetDirSeparators(CfgFilename);
UpdateUsageCounts;
UpdateUsageCounts(CfgFilename);
// first save the .lpi file
SaveSessionInfoInLPI:=true;
if (pwfDoNotSaveSessionInfo in ProjectWriteFlags) then
SaveSessionInfoInLPI:=false;
if (SessionStorage<>pssInProjectInfo) then
SaveSessionInfoInLPI:=false;
repeat
try
xmlconfig := TXMLConfig.CreateClean(confPath);
xmlconfig := TXMLConfig.CreateClean(CfgFilename);
except
on E: Exception do begin
DebugLn('ERROR: ',E.Message);
@ -1529,7 +1554,7 @@ begin
Path:='ProjectOptions/';
xmlconfig.SetValue(Path+'PathDelim/Value',PathDelim);
xmlconfig.SetValue(Path+'Version/Value',ProjectInfoFileVersion);
SaveFlags;
SaveFlags(XMLConfig,Path);
xmlconfig.SetDeleteValue(Path+'General/SessionStorage/Value',
ProjectSessionStorageNames[SessionStorage],
ProjectSessionStorageNames[pssInProjectInfo]);
@ -1545,8 +1570,6 @@ begin
//lazdoc
xmlconfig.SetValue(Path+'LazDoc/Paths', LazDocPathList.Text);
SaveUnits;
// Save the compiler options
CompilerOptions.SaveToXMLConfig(XMLConfig,'CompilerOptions/');
@ -1560,14 +1583,12 @@ begin
SavePkgDependencyList(XMLConfig,Path+'RequiredPackages/',
FFirstRequiredDependency,pdlRequires);
// save session info
xmlconfig.SetDeleteValue(Path+'General/ActiveEditorIndexAtStart/Value',
ActiveEditorIndexAtStart,-1);
// save units
SaveUnits(XMLConfig,Path,true,SaveSessionInfoInLPI);
if (not (pfSaveOnlyProjectUnits in Flags))
and (not (pwfSkipJumpPoints in ProjectWriteFlags)) then begin
FJumpHistory.DeleteInvalidPositions;
FJumpHistory.SaveToXMLConfig(xmlconfig,Path);
// save session info
if SaveSessionInfoInLPI then begin
SaveSessionInfo(XMLConfig,Path);
end;
if Assigned(OnSaveProjectInfo) then
@ -1576,12 +1597,13 @@ begin
InvalidateFileStateCache;
xmlconfig.Flush;
Modified:=false;
SessionModified:=false;
if SaveSessionInfoInLPI then
SessionModified:=false;
Result:=mrOk;
except
on E: Exception do begin
Result:=MessageDlg('Write error','Unable to write to file "'+confPath+'".',
Result:=MessageDlg('Write error','Unable to write to file "'+CfgFilename+'".',
mtError,[mbRetry,mbAbort],0);
end;
end;
@ -1591,6 +1613,70 @@ begin
end;
xmlconfig:=nil;
until Result<>mrRetry;
if Result<>mrOk then exit;
if (not (pwfDoNotSaveSessionInfo in ProjectWriteFlags))
and (SessionStorage in [pssInProjectDir,pssInIDEConfig]) then begin
// save session in separate file .lps
if OverrideProjectInfoFile<>'' then
CurSessionFilename := ChangeFileExt(OverrideProjectInfoFile,'.lps')
else
CurSessionFilename := ProjectSessionFile;
if ExtractFileNameOnly(CurSessionFilename)='' then begin
DebugLn('ERROR: TProject.WriteProject ProjectSessionFile invalid: "',CurSessionFilename,'"');
Result:=mrCancel;
exit;
end;
if CompareFilenames(CurSessionFilename,CfgFilename)=0 then
exit;
if Assigned(fOnFileBackup) then begin
Result:=fOnFileBackup(CurSessionFilename,true);
if Result=mrAbort then exit;
end;
CurSessionFilename:=SetDirSeparators(CurSessionFilename);
repeat
try
xmlconfig := TXMLConfig.CreateClean(CurSessionFilename);
except
on E: Exception do begin
DebugLn('ERROR: ',E.Message);
MessageDlg('Write error',
'Unable to write the project session file'#13
+'"'+ProjectSessionFile+'".'#13
+'Error: '+E.Message
,mtError,[mbOk],0);
Result:=mrCancel;
exit;
end;
end;
try
Path:='ProjectSession/';
xmlconfig.SetValue(Path+'PathDelim/Value',PathDelim);
xmlconfig.SetValue(Path+'Version/Value',ProjectInfoFileVersion);
// save all units
SaveUnits(XMLConfig,Path,true,true);
// save session
SaveSessionInfo(XMLConfig,Path);
Result:=mrOk;
except
on E: Exception do begin
Result:=MessageDlg('Write error','Unable to write to file "'+CurSessionFilename+'".',
mtError,[mbRetry,mbAbort],0);
end;
end;
try
xmlconfig.Free;
except
end;
xmlconfig:=nil;
until Result<>mrRetry;
end;
end;
function TProject.GetDefaultTitle: string;
@ -1616,7 +1702,7 @@ end;
{------------------------------------------------------------------------------
TProject ReadProject
------------------------------------------------------------------------------}
function TProject.ReadProject(const LPIFilename: string): TModalResult;
function TProject.ReadProject(const NewProjectInfoFile: string): TModalResult;
type
TOldProjectType = (ptApplication, ptProgram, ptCustomProgram);
const
@ -1624,17 +1710,9 @@ const
'Application', 'Program', 'Custom program'
);
var
NewUnitInfo: TUnitInfo;
NewUnitCount,i: integer;
FileVersion: Integer;
OldSrcPath: String;
Path: String;
OldProjectType: TOldProjectType;
xmlconfig: TXMLConfig;
SubPath: String;
NewUnitFilename: String;
procedure LoadCompilerOptions;
procedure LoadCompilerOptions(XMLConfig: TXMLConfig; const Path: string);
var
CompOptsPath: String;
begin
@ -1649,18 +1727,40 @@ var
CompOptsPath:='CompilerOptions/';
end;
CompilerOptions.LoadFromXMLConfig(xmlconfig,CompOptsPath);
if FileVersion<2 then CompilerOptions.SrcPath:=OldSrcPath;
if FileVersion<2 then
CompilerOptions.SrcPath:=xmlconfig.GetValue(Path+'General/SrcPath/Value','');
end;
procedure LoadFlags;
function ReadOldProjectType(XMLConfig: TXMLConfig;
const Path: string): TOldProjectType;
function OldProjectTypeNameToType(const s: string): TOldProjectType;
begin
for Result:=Low(TOldProjectType) to High(TOldProjectType) do
if (CompareText(OldProjectTypeNames[Result],s)=0) then exit;
Result:=ptApplication;
end;
begin
if FileVersion<=4 then
Result := OldProjectTypeNameToType(xmlconfig.GetValue(
Path+'General/ProjectType/Value', ''))
else
Result := ptCustomProgram;
end;
procedure LoadFlags(XMLConfig: TXMLConfig; const Path: string);
procedure SetFlag(f: TProjectFlag; Value: boolean);
begin
if Value then Include(FFlags,f) else Exclude(FFlags,f);
end;
var f: TProjectFlag;
var
f: TProjectFlag;
OldProjectType: TOldProjectType;
begin
OldProjectType:=ReadOldProjectType(XMLConfig,Path);
FFlags:=[];
for f:=Low(TProjectFlag) to High(TProjectFlag) do begin
SetFlag(f,xmlconfig.GetValue(
@ -1681,30 +1781,20 @@ var
end;
end;
procedure ReadOldProjectType;
function OldProjectTypeNameToType(const s: string): TOldProjectType;
begin
for Result:=Low(TOldProjectType) to High(TOldProjectType) do
if (AnsiCompareText(OldProjectTypeNames[Result],s)=0) then exit;
Result:=ptApplication;
end;
begin
if FileVersion<=4 then
OldProjectType := OldProjectTypeNameToType(xmlconfig.GetValue(
Path+'General/ProjectType/Value', ''))
else
OldProjectType := ptCustomProgram;
end;
var
NewUnitInfo: TUnitInfo;
NewUnitCount,i: integer;
Path: String;
xmlconfig: TXMLConfig;
SubPath: String;
NewUnitFilename: String;
begin
Result := mrCancel;
BeginUpdate(true);
try
Clear;
ProjectInfoFile:=LPIFilename;
ProjectInfoFile:=NewProjectInfoFile;
try
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TProject.ReadProject A reading lpi');{$ENDIF}
xmlconfig := TXMLConfig.Create(ProjectInfoFile);
@ -1725,11 +1815,13 @@ begin
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TProject.ReadProject C reading values');{$ENDIF}
FileVersion:= XMLConfig.GetValue(Path+'Version/Value',0);
ReadOldProjectType;
LoadFlags;
LoadFlags(XMLConfig,Path);
SessionStorage:=StrToProjectSessionStorage(
XMLConfig.GetValue(Path+'General/SessionStorage/Value',
ProjectSessionStorageNames[pssInProjectInfo]));
UpdateSessionFilename;
MainUnitID := xmlconfig.GetValue(Path+'General/MainUnit/Value', -1);
AutoCreateForms := xmlconfig.GetValue(
Path+'General/AutoCreateForms/Value', true);
@ -1737,8 +1829,6 @@ begin
TargetFileExt := xmlconfig.GetValue(
Path+'General/TargetFileExt/Value', GetDefaultExecutableExt);
Title := xmlconfig.GetValue(Path+'General/Title/Value', '');
if FileVersion<2 then
OldSrcPath := xmlconfig.GetValue(Path+'General/SrcPath/Value','');
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TProject.ReadProject D reading units');{$ENDIF}
NewUnitCount:=xmlconfig.GetValue(Path+'Units/Count',0);
@ -1757,12 +1847,12 @@ begin
NewUnitInfo.LoadFromXMLConfig(xmlconfig,SubPath);
end;
//lazdoc
// Lazdoc
LazDocPathList.Text := xmlconfig.GetValue(Path+'LazDoc/Paths', '');
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TProject.ReadProject E reading comp sets');{$ENDIF}
// Load the compiler options
LoadCompilerOptions;
LoadCompilerOptions(XMLConfig,Path);
// load the Publish Options
PublishOptions.LoadFromXMLConfig(xmlconfig,
@ -1796,6 +1886,41 @@ begin
end;
xmlconfig:=nil;
end;
if (SessionStorage in [pssInProjectDir,pssInIDEConfig])
and (CompareFilenames(ProjectInfoFile,ProjectSessionFile)<>0)
and FileExists(ProjectSessionFile) then begin
try
xmlconfig := TXMLConfig.Create(ProjectSessionFile);
Path:='ProjectOptions/';
fPathDelimChanged:=
XMLConfig.GetValue(Path+'PathDelim/Value', PathDelim)<>PathDelim;
FJumpHistory.LoadFromXMLConfig(xmlconfig,Path+'');
except
MessageDlg('Unable to read the project info file'#13'"'+ProjectInfoFile+'".'
,mtError,[mbOk],0);
Result:=mrCancel;
exit;
end;
try
Path:='ProjectOptions/';
fPathDelimChanged:=
XMLConfig.GetValue(Path+'PathDelim/Value', PathDelim)<>PathDelim;
finally
fPathDelimChanged:=false;
try
xmlconfig.Free;
except
end;
xmlconfig:=nil;
end;
end;
finally
EndUpdate;
end;
@ -1930,6 +2055,7 @@ begin
Modified := false;
SessionModified := false;
fProjectInfoFile := '';
ProjectSessionFile:='';
FStateFileDate:=0;
FStateFlags:=[];
ClearSourceDirectories;
@ -2502,6 +2628,7 @@ begin
Title:=DefaultTitle;
end;
UpdateProjectDirectory;
UpdateSessionFilename;
FDefineTemplates.SourceDirectoriesChanged;
Modified:=true;
EndUpdate;
@ -3183,6 +3310,18 @@ begin
end;
end;
procedure TProject.UpdateSessionFilename;
begin
case SessionStorage of
pssInProjectInfo: ProjectSessionFile:=ProjectInfoFile;
pssInProjectDir: ProjectSessionFile:=ChangeFileExt(ProjectInfoFile,'.lps');
pssInIDEConfig: ProjectSessionFile:=
AppendPathDelim(GetProjectSessionsConfigPath)
+ExtractFileNameOnly(ProjectInfoFile)+'.lps';
pssNone: ProjectSessionFile:='';
end;
end;
procedure TProject.UpdateSourceDirectories;
var
Cnt: Integer;

View File

@ -49,7 +49,8 @@ type
pwfDontSaveClosedUnits,
pwfSaveOnlyProjectUnits,
pwfSkipDebuggerSettings,
pwfSkipJumpPoints
pwfSkipJumpPoints,
pwfDoNotSaveSessionInfo
);
TProjectWriteFlags = set of TProjectWriteFlag;

View File

@ -1,44 +1,44 @@
object ProjectOptionsDialog: TProjectOptionsDialog
Left = 532
Height = 375
Top = 281
Width = 430
HorzScrollBar.Page = 429
VertScrollBar.Page = 374
ActiveControl = TitleEdit
Caption = 'ProjectOptionsDialog'
ClientHeight = 375
ClientWidth = 430
OnClose = ProjectOptionsClose
OnResize = ProjectOptionsResize
PixelsPerInch = 112
PixelsPerInch = 95
Position = poScreenCenter
HorzScrollBar.Page = 429
VertScrollBar.Page = 374
Left = 532
Height = 375
Top = 281
Width = 430
object Notebook: TNotebook
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
PageIndex = 2
Height = 338
Width = 430
object Page1: TPage
Caption = 'Page1'
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
PageIndex = 4
object ApplicationPage: TPage
Caption = 'ApplicationPage'
ClientWidth = 426
ClientHeight = 308
Left = 2
Height = 308
Top = 28
Width = 426
object AppSettingsGroupBox: TGroupBox
Left = 6
Height = 73
Top = 6
Width = 414
Align = alTop
BorderSpacing.Around = 6
Caption = 'AppSettingsGroupBox'
ClientHeight = 56
ClientWidth = 410
TabOrder = 0
Left = 6
Height = 73
Top = 6
Width = 414
object TitleLabel: TLabel
Left = 6
Height = 13
Top = 6
Width = 398
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 6
@ -46,35 +46,35 @@ object ProjectOptionsDialog: TProjectOptionsDialog
Caption = 'TitleLabel'
Color = clNone
ParentColor = False
Left = 6
Height = 13
Top = 6
Width = 398
end
object TitleEdit: TEdit
Left = 6
Height = 23
Top = 19
Width = 398
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Right = 6
TabOrder = 0
Text = 'TitleEdit'
Left = 6
Height = 23
Top = 19
Width = 398
end
end
object OutputSettingsGroupBox: TGroupBox
Left = 6
Height = 73
Top = 85
Width = 414
Align = alTop
BorderSpacing.Around = 6
Caption = 'OutputSettingsGroupBox'
ClientHeight = 56
ClientWidth = 410
TabOrder = 1
Left = 6
Height = 73
Top = 85
Width = 414
object TargetFileLabel: TLabel
Left = 6
Height = 13
Top = 6
Width = 398
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 6
@ -82,321 +82,345 @@ object ProjectOptionsDialog: TProjectOptionsDialog
Caption = 'TargetFileLabel'
Color = clNone
ParentColor = False
Left = 6
Height = 13
Top = 6
Width = 398
end
object TargetFileEdit: TEdit
Left = 6
Height = 23
Top = 19
Width = 398
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Right = 6
TabOrder = 0
Text = 'TargetFileEdit'
Left = 6
Height = 23
Top = 19
Width = 398
end
end
end
object Page2: TPage
Caption = 'Page2'
object FormsPage: TPage
Caption = 'FormsPage'
ClientWidth = 426
ClientHeight = 308
Left = 2
Height = 308
Top = 28
Width = 426
object FormsAutoCreatedLabel: TLabel
Caption = 'FormsAutoCreatedLabel'
Color = clNone
ParentColor = False
Left = 36
Height = 13
Top = 10
Width = 136
end
object FormsAvailFormsLabel: TLabel
Caption = 'FormsAvailFormsLabel'
Caption = 'FormsAutoCreatedLabel'
Color = clNone
ParentColor = False
end
object FormsAvailFormsLabel: TLabel
Left = 252
Height = 13
Top = 10
Width = 129
Caption = 'FormsAvailFormsLabel'
Color = clNone
ParentColor = False
end
object FormsAutoCreatedListBox: TListBox
MultiSelect = True
TabOrder = 0
TopIndex = -1
Left = 36
Height = 242
Top = 32
Width = 168
MultiSelect = True
TabOrder = 0
TopIndex = -1
end
object FormsAvailFormsListBox: TListBox
MultiSelect = True
TabOrder = 1
TopIndex = -1
Left = 244
Height = 242
Top = 32
Width = 168
MultiSelect = True
TabOrder = 1
TopIndex = -1
end
object FormsMoveAutoCreatedFormUpBtn: TArrow
Left = 6
Height = 24
Top = 32
Width = 24
ArrowType = atUp
OnClick = FormsMoveAutoCreatedFormUpBtnClick
Left = 6
Height = 24
Top = 32
Width = 24
end
object FormsMoveAutoCreatedFormsDownBtn: TArrow
ArrowType = atDown
OnClick = FormsMoveAutoCreatedFormDownBtnClick
Left = 6
Height = 24
Top = 60
Width = 24
ArrowType = atDown
OnClick = FormsMoveAutoCreatedFormDownBtnClick
end
object FormsRemoveFromAutoCreatedFormsBtn: TArrow
ArrowType = atRight
OnClick = FormsRemoveFromAutoCreatedFormsBtnClick
Left = 212
Height = 24
Top = 32
Width = 24
ArrowType = atRight
OnClick = FormsRemoveFromAutoCreatedFormsBtnClick
end
object FormsAddToAutoCreatedFormsBtn: TArrow
OnClick = FormsAddToAutoCreatedFormsBtnClick
Left = 212
Height = 24
Top = 60
Width = 24
OnClick = FormsAddToAutoCreatedFormsBtnClick
end
object FormsAutoCreateNewFormsCheckBox: TCheckBox
Align = alBottom
BorderSpacing.Around = 6
Caption = 'FormsAutoCreateNewFormsCheckBox'
TabOrder = 2
Left = 6
Height = 24
Top = 278
Width = 414
Align = alBottom
BorderSpacing.Around = 6
Caption = 'FormsAutoCreateNewFormsCheckBox'
TabOrder = 2
end
end
object Page3: TPage
Caption = 'Page3'
object MiscPage: TPage
Caption = 'MiscPage'
ClientWidth = 426
ClientHeight = 308
object MainUnitHasUsesSectionForAllUnitsCheckBox: TCheckBox
AnchorSideTop.Control = MainUnitIsPascalSourceCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 24
Top = 36
Width = 414
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 2
BorderSpacing.Right = 6
Caption = 'MainUnitHasUsesSectionForAllUnitsCheckBox'
TabOrder = 0
end
object MainUnitHasCreateFormStatementsCheckBox: TCheckBox
AnchorSideTop.Control = MainUnitHasUsesSectionForAllUnitsCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 24
Top = 62
Width = 414
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 2
BorderSpacing.Right = 6
Caption = 'MainUnitHasCreateFormStatementsCheckBox'
TabOrder = 1
end
object MainUnitIsPascalSourceCheckBox: TCheckBox
Left = 6
Height = 24
Top = 10
Width = 414
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 10
BorderSpacing.Right = 6
Caption = 'MainUnitIsPascalSourceCheckBox'
TabOrder = 2
end
object MainUnitHasTitleStatementCheckBox: TCheckBox
AnchorSideTop.Control = MainUnitHasCreateFormStatementsCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 24
Top = 88
Width = 414
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 2
BorderSpacing.Right = 6
Caption = 'MainUnitHasTitleStatementCheckBox'
TabOrder = 5
end
object RunnableCheckBox: TCheckBox
AnchorSideTop.Control = MainUnitHasTitleStatementCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 24
Top = 122
Width = 414
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 10
BorderSpacing.Right = 6
Caption = 'RunnableCheckBox'
TabOrder = 3
end
object AlwaysBuildCheckBox: TCheckBox
AnchorSideTop.Control = RunnableCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 24
Top = 148
Width = 414
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
BorderSpacing.Right = 6
Caption = 'AlwaysBuildCheckBox'
TabOrder = 4
end
end
object LazDocPage: TPage
Caption = 'LazDocPage'
ClientWidth = 426
ClientHeight = 308
object Label2: TLabel
Height = 13
Top = 222
Width = 426
Align = alTop
Caption = 'NOTE: only absolute paths are supported now'
Color = clNone
ParentColor = False
end
object LazDocPathsGroupBox: TGroupBox
Left = 6
Height = 210
Top = 6
Width = 414
Align = alTop
BorderSpacing.Around = 6
Caption = 'LazDocPathsGroupBox'
ClientHeight = 210
ClientWidth = 414
TabOrder = 0
object LazDocListBox: TListBox
Left = 6
Height = 108
Top = 6
Width = 402
Align = alTop
BorderSpacing.Around = 6
TabOrder = 0
TopIndex = -1
end
object LazDocAddPathButton: TButton
Left = 6
Height = 25
Top = 122
Width = 75
BorderSpacing.InnerBorder = 2
Caption = 'LazDocAddPathButton'
OnClick = LazDocAddPathButtonClick
TabOrder = 1
end
object LazDocDeletePathButton: TButton
Left = 90
Height = 25
Top = 122
Width = 75
BorderSpacing.InnerBorder = 2
Caption = 'LazDocDeletePathButton'
OnClick = LazDocDeletePathButtonClick
TabOrder = 2
end
object LazDocPathEdit: TEdit
Left = 6
Height = 23
Top = 154
Width = 358
Anchors = [akTop, akLeft, akRight]
TabOrder = 3
Text = 'LazDocPathEdit'
end
object LazDocBrowseButton: TButton
Left = 369
Height = 23
Top = 154
Width = 23
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 2
Caption = '...'
OnClick = LazDocBrowseButtonClick
TabOrder = 4
end
end
end
object SavePage: TPage
Caption = 'SavePage'
ClientWidth = 426
ClientHeight = 308
Left = 2
Height = 308
Top = 28
Width = 426
object SaveClosedUnitInfoCheckBox: TCheckBox
Left = 6
Height = 24
Top = 6
Width = 414
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
Caption = 'SaveClosedUnitInfoCheckBox'
TabOrder = 0
Left = 6
Height = 24
Top = 6
Width = 414
end
object MainUnitHasUsesSectionForAllUnitsCheckBox: TCheckBox
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
Caption = 'MainUnitHasUsesSectionForAllUnitsCheckBox'
TabOrder = 1
Left = 6
Height = 24
Top = 106
Width = 414
end
object MainUnitHasCreateFormStatementsCheckBox: TCheckBox
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
Caption = 'MainUnitHasCreateFormStatementsCheckBox'
TabOrder = 2
Left = 6
Height = 24
Top = 136
Width = 414
end
object MainUnitIsPascalSourceCheckBox: TCheckBox
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 16
BorderSpacing.Right = 6
Caption = 'MainUnitIsPascalSourceCheckBox'
TabOrder = 3
Left = 6
Height = 24
Top = 76
Width = 414
end
object SaveOnlyProjectUnitInfoCheckBox: TCheckBox
AnchorSideTop.Control = SaveClosedUnitInfoCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 24
Top = 32
Width = 414
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Top = 2
BorderSpacing.Right = 6
Caption = 'SaveOnlyProjectUnitInfoCheckBox'
TabOrder = 4
Left = 6
Height = 24
Top = 36
Width = 414
TabOrder = 1
end
object MainUnitHasTitleStatementCheckBox: TCheckBox
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
Caption = 'MainUnitHasTitleStatementCheckBox'
TabOrder = 5
Left = 6
Height = 24
Top = 166
Width = 414
end
object RunnableCheckBox: TCheckBox
Align = alTop
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
Caption = 'RunnableCheckBox'
TabOrder = 6
Left = 6
Height = 24
Top = 196
Width = 414
end
object AlwaysBuildCheckBox: TCheckBox
Anchors = [akTop, akLeft, akRight]
Caption = 'AlwaysBuildCheckBox'
TabOrder = 7
Left = 6
Height = 23
Top = 232
Width = 414
end
end
object Page4: TPage
Caption = 'Page4'
ClientWidth = 426
ClientHeight = 308
Left = 2
Height = 308
Top = 28
Width = 426
object Label2: TLabel
Align = alTop
Caption = 'NOTE: only absolute paths are supported now'
Color = clNone
ParentColor = False
Height = 13
Top = 222
Width = 426
end
object LazDocPathsGroupBox: TGroupBox
Align = alTop
object SaveSessionLocationRadioGroup: TRadioGroup
AnchorSideTop.Control = SaveOnlyProjectUnitInfoCheckBox
AnchorSideTop.Side = asrBottom
Left = 7
Height = 117
Top = 67
Width = 413
AutoFill = True
BorderSpacing.Top = 5
BorderSpacing.Around = 6
Caption = 'LazDocPathsGroupBox'
ClientHeight = 193
ClientWidth = 410
TabOrder = 0
Left = 6
Height = 210
Top = 6
Width = 414
object LazDocListBox: TListBox
Align = alTop
BorderSpacing.Around = 6
TabOrder = 0
TopIndex = -1
Left = 6
Height = 108
Top = 6
Width = 398
end
object LazDocAddPathButton: TButton
BorderSpacing.InnerBorder = 2
Caption = 'LazDocAddPathButton'
OnClick = LazDocAddPathButtonClick
TabOrder = 1
Left = 6
Height = 25
Top = 122
Width = 75
end
object LazDocDeletePathButton: TButton
BorderSpacing.InnerBorder = 2
Caption = 'LazDocDeletePathButton'
OnClick = LazDocDeletePathButtonClick
TabOrder = 2
Left = 90
Height = 25
Top = 122
Width = 75
end
object LazDocPathEdit: TEdit
Anchors = [akTop, akLeft, akRight]
TabOrder = 3
Text = 'LazDocPathEdit'
Left = 6
Height = 23
Top = 154
Width = 354
end
object LazDocBrowseButton: TButton
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 2
Caption = '...'
OnClick = LazDocBrowseButtonClick
TabOrder = 4
Left = 365
Height = 23
Top = 154
Width = 23
end
Caption = 'SaveSessionLocationRadioGroup'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
TabOrder = 2
end
end
end
object CancelButton: TButton
Left = 344
Height = 25
Top = 344
Width = 75
Anchors = [akRight, akBottom]
BorderSpacing.InnerBorder = 2
Cancel = True
Caption = 'Cancel'
ModalResult = 2
TabOrder = 1
Left = 344
end
object OKButton: TButton
Left = 256
Height = 25
Top = 344
Width = 75
end
object OKButton: TButton
Anchors = [akRight, akBottom]
BorderSpacing.InnerBorder = 2
Caption = 'OK'
Default = True
ModalResult = 1
TabOrder = 2
Left = 256
Height = 25
Top = 344
Width = 75
end
object SelectDirectoryDialog: TSelectDirectoryDialog
Title = 'Select Directory'
FilterIndex = 0
Title = 'Select Directory'
left = 344
top = 8
end

View File

@ -1,116 +1,133 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TProjectOptionsDialog','FORMDATA',[
'TPF0'#21'TProjectOptionsDialog'#20'ProjectOptionsDialog'#13'ActiveControl'#7
+#9'TitleEdit'#7'Caption'#6#20'ProjectOptionsDialog'#12'ClientHeight'#3'w'#1
+#11'ClientWidth'#3#174#1#7'OnClose'#7#19'ProjectOptionsClose'#8'OnResize'#7
+#20'ProjectOptionsResize'#13'PixelsPerInch'#2'p'#8'Position'#7#14'poScreenCe'
+'nter'#18'HorzScrollBar.Page'#3#173#1#18'VertScrollBar.Page'#3'v'#1#4'Left'#3
+#20#2#6'Height'#3'w'#1#3'Top'#3#25#1#5'Width'#3#174#1#0#9'TNotebook'#8'Noteb'
+'ook'#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBo'
+'ttom'#0#9'PageIndex'#2#2#6'Height'#3'R'#1#5'Width'#3#174#1#0#5'TPage'#5'Pag'
+'e1'#7'Caption'#6#5'Page1'#11'ClientWidth'#3#170#1#12'ClientHeight'#3'4'#1#4
+'Left'#2#2#6'Height'#3'4'#1#3'Top'#2#28#5'Width'#3#170#1#0#9'TGroupBox'#19'A'
+'ppSettingsGroupBox'#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Capt'
+'ion'#6#19'AppSettingsGroupBox'#12'ClientHeight'#2'8'#11'ClientWidth'#3#154#1
+#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#2'I'#3'Top'#2#6#5'Width'#3#158#1#0#6
+'TLabel'#10'TitleLabel'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'Bo'
+'rderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#10'TitleLabel'
+#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#6#6'Height'#2#13#3'Top'#2#6
+#5'Width'#3#142#1#0#0#5'TEdit'#9'TitleEdit'#5'Align'#7#5'alTop'#18'BorderSpa'
+'cing.Left'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrder'#2#0#4'Text'#6#9'Titl'
+'eEdit'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#19#5'Width'#3#142#1#0#0#0#9'TGro'
+'upBox'#22'OutputSettingsGroupBox'#5'Align'#7#5'alTop'#20'BorderSpacing.Arou'
+'nd'#2#6#7'Caption'#6#22'OutputSettingsGroupBox'#12'ClientHeight'#2'8'#11'Cl'
+'ientWidth'#3#154#1#8'TabOrder'#2#1#4'Left'#2#6#6'Height'#2'I'#3'Top'#2'U'#5
+'Width'#3#158#1#0#6'TLabel'#15'TargetFileLabel'#5'Align'#7#5'alTop'#18'Borde'
+'rSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7
+'Caption'#6#15'TargetFileLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Lef'
+'t'#2#6#6'Height'#2#13#3'Top'#2#6#5'Width'#3#142#1#0#0#5'TEdit'#14'TargetFil'
+'eEdit'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Righ'
+'t'#2#6#8'TabOrder'#2#0#4'Text'#6#14'TargetFileEdit'#4'Left'#2#6#6'Height'#2
+#23#3'Top'#2#19#5'Width'#3#142#1#0#0#0#0#5'TPage'#5'Page2'#7'Caption'#6#5'Pa'
+'ge2'#11'ClientWidth'#3#170#1#12'ClientHeight'#3'4'#1#4'Left'#2#2#6'Height'#3
+'4'#1#3'Top'#2#28#5'Width'#3#170#1#0#6'TLabel'#21'FormsAutoCreatedLabel'#7'C'
+'aption'#6#21'FormsAutoCreatedLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#4
+'Left'#2'$'#6'Height'#2#13#3'Top'#2#10#5'Width'#3#136#0#0#0#6'TLabel'#20'For'
+'msAvailFormsLabel'#7'Caption'#6#20'FormsAvailFormsLabel'#5'Color'#7#6'clNon'
+'e'#11'ParentColor'#8#4'Left'#3#252#0#6'Height'#2#13#3'Top'#2#10#5'Width'#3
+#129#0#0#0#8'TListBox'#23'FormsAutoCreatedListBox'#11'MultiSelect'#9#8'TabOr'
+'der'#2#0#8'TopIndex'#2#255#4'Left'#2'$'#6'Height'#3#242#0#3'Top'#2' '#5'Wid'
+'th'#3#168#0#0#0#8'TListBox'#22'FormsAvailFormsListBox'#11'MultiSelect'#9#8
+'TabOrder'#2#1#8'TopIndex'#2#255#4'Left'#3#244#0#6'Height'#3#242#0#3'Top'#2
+' '#5'Width'#3#168#0#0#0#6'TArrow'#29'FormsMoveAutoCreatedFormUpBtn'#9'Arrow'
+'Type'#7#4'atUp'#7'OnClick'#7'"FormsMoveAutoCreatedFormUpBtnClick'#4'Left'#2
+#6#6'Height'#2#24#3'Top'#2' '#5'Width'#2#24#0#0#6'TArrow FormsMoveAutoCreate'
+'dFormsDownBtn'#9'ArrowType'#7#6'atDown'#7'OnClick'#7'$FormsMoveAutoCreatedF'
+'ormDownBtnClick'#4'Left'#2#6#6'Height'#2#24#3'Top'#2'<'#5'Width'#2#24#0#0#6
+'TArrow"FormsRemoveFromAutoCreatedFormsBtn'#9'ArrowType'#7#7'atRight'#7'OnCl'
+'ick'#7'''FormsRemoveFromAutoCreatedFormsBtnClick'#4'Left'#3#212#0#6'Height'
+#2#24#3'Top'#2' '#5'Width'#2#24#0#0#6'TArrow'#29'FormsAddToAutoCreatedFormsB'
+'tn'#7'OnClick'#7'"FormsAddToAutoCreatedFormsBtnClick'#4'Left'#3#212#0#6'Hei'
+'ght'#2#24#3'Top'#2'<'#5'Width'#2#24#0#0#9'TCheckBox'#31'FormsAutoCreateNewF'
+'ormsCheckBox'#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6#7'Caption'
+#6#31'FormsAutoCreateNewFormsCheckBox'#8'TabOrder'#2#2#4'Left'#2#6#6'Height'
+#2#24#3'Top'#3#22#1#5'Width'#3#158#1#0#0#0#5'TPage'#5'Page3'#7'Caption'#6#5
+'Page3'#11'ClientWidth'#3#170#1#12'ClientHeight'#3'4'#1#4'Left'#2#2#6'Height'
+#3'4'#1#3'Top'#2#28#5'Width'#3#170#1#0#9'TCheckBox'#26'SaveClosedUnitInfoChe'
+'ckBox'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'
+#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6#26'SaveClosedUnitInfoCheckBox'
+#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#2#24#3'Top'#2#6#5'Width'#3#158#1#0#0#9
+'TCheckBox)MainUnitHasUsesSectionForAllUnitsCheckBox'#5'Align'#7#5'alTop'#18
+'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2
+#6#7'Caption'#6')MainUnitHasUsesSectionForAllUnitsCheckBox'#8'TabOrder'#2#1#4
+'Left'#2#6#6'Height'#2#24#3'Top'#2'j'#5'Width'#3#158#1#0#0#9'TCheckBox''Main'
+'UnitHasCreateFormStatementsCheckBox'#5'Align'#7#5'alTop'#18'BorderSpacing.L'
+'eft'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'#6
+'''MainUnitHasCreateFormStatementsCheckBox'#8'TabOrder'#2#2#4'Left'#2#6#6'He'
,'ight'#2#24#3'Top'#3#136#0#5'Width'#3#158#1#0#0#9'TCheckBox'#30'MainUnitIsPa'
+'scalSourceCheckBox'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'Borde'
+'rSpacing.Top'#2#16#19'BorderSpacing.Right'#2#6#7'Caption'#6#30'MainUnitIsPa'
+'scalSourceCheckBox'#8'TabOrder'#2#3#4'Left'#2#6#6'Height'#2#24#3'Top'#2'L'#5
+'Width'#3#158#1#0#0#9'TCheckBox'#31'SaveOnlyProjectUnitInfoCheckBox'#5'Align'
'TPF0'#21'TProjectOptionsDialog'#20'ProjectOptionsDialog'#4'Left'#3#20#2#6'He'
+'ight'#3'w'#1#3'Top'#3#25#1#5'Width'#3#174#1#18'HorzScrollBar.Page'#3#173#1
+#18'VertScrollBar.Page'#3'v'#1#13'ActiveControl'#7#9'TitleEdit'#7'Caption'#6
+#20'ProjectOptionsDialog'#12'ClientHeight'#3'w'#1#11'ClientWidth'#3#174#1#7
+'OnClose'#7#19'ProjectOptionsClose'#8'OnResize'#7#20'ProjectOptionsResize'#13
+'PixelsPerInch'#2'_'#8'Position'#7#14'poScreenCenter'#0#9'TNotebook'#8'Noteb'
+'ook'#6'Height'#3'R'#1#5'Width'#3#174#1#5'Align'#7#5'alTop'#7'Anchors'#11#5
+'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#9'PageIndex'#2#4#0#5'TPage'#15'Ap'
+'plicationPage'#7'Caption'#6#15'ApplicationPage'#11'ClientWidth'#3#170#1#12
+'ClientHeight'#3'4'#1#0#9'TGroupBox'#19'AppSettingsGroupBox'#4'Left'#2#6#6'H'
+'eight'#2'I'#3'Top'#2#6#5'Width'#3#158#1#5'Align'#7#5'alTop'#20'BorderSpacin'
+'g.Around'#2#6#7'Caption'#6#19'AppSettingsGroupBox'#12'ClientHeight'#2'8'#11
+'ClientWidth'#3#154#1#8'TabOrder'#2#0#0#6'TLabel'#10'TitleLabel'#4'Left'#2#6
+#6'Height'#2#13#3'Top'#2#6#5'Width'#3#142#1#5'Align'#7#5'alTop'#18'BorderSpa'
+'cing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Capt'
+'ion'#6#10'TitleLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#5'TEdit'#9
+'TitleEdit'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#19#5'Width'#3#142#1#5'Align'
+#7#5'alTop'#18'BorderSpacing.Left'#2#6#19'BorderSpacing.Right'#2#6#8'TabOrde'
+'r'#2#0#4'Text'#6#9'TitleEdit'#0#0#0#9'TGroupBox'#22'OutputSettingsGroupBox'
+#4'Left'#2#6#6'Height'#2'I'#3'Top'#2'U'#5'Width'#3#158#1#5'Align'#7#5'alTop'
+#20'BorderSpacing.Around'#2#6#7'Caption'#6#22'OutputSettingsGroupBox'#12'Cli'
+'entHeight'#2'8'#11'ClientWidth'#3#154#1#8'TabOrder'#2#1#0#6'TLabel'#15'Targ'
+'etFileLabel'#4'Left'#2#6#6'Height'#2#13#3'Top'#2#6#5'Width'#3#142#1#5'Align'
+#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSp'
+'acing.Right'#2#6#7'Caption'#6#31'SaveOnlyProjectUnitInfoCheckBox'#8'TabOrde'
+'r'#2#4#4'Left'#2#6#6'Height'#2#24#3'Top'#2'$'#5'Width'#3#158#1#0#0#9'TCheck'
+'Box!MainUnitHasTitleStatementCheckBox'#5'Align'#7#5'alTop'#18'BorderSpacing'
+'.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Caption'
+#6'!MainUnitHasTitleStatementCheckBox'#8'TabOrder'#2#5#4'Left'#2#6#6'Height'
+#2#24#3'Top'#3#166#0#5'Width'#3#158#1#0#0#9'TCheckBox'#16'RunnableCheckBox'#5
+'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'B'
+'orderSpacing.Right'#2#6#7'Caption'#6#16'RunnableCheckBox'#8'TabOrder'#2#6#4
+'Left'#2#6#6'Height'#2#24#3'Top'#3#196#0#5'Width'#3#158#1#0#0#9'TCheckBox'#19
+'AlwaysBuildCheckBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Captio'
+'n'#6#19'AlwaysBuildCheckBox'#8'TabOrder'#2#7#4'Left'#2#6#6'Height'#2#23#3'T'
+'op'#3#232#0#5'Width'#3#158#1#0#0#0#5'TPage'#5'Page4'#7'Caption'#6#5'Page4'
+#11'ClientWidth'#3#170#1#12'ClientHeight'#3'4'#1#4'Left'#2#2#6'Height'#3'4'#1
+#3'Top'#2#28#5'Width'#3#170#1#0#6'TLabel'#6'Label2'#5'Align'#7#5'alTop'#7'Ca'
+'ption'#6'+NOTE: only absolute paths are supported now'#5'Color'#7#6'clNone'
+#11'ParentColor'#8#6'Height'#2#13#3'Top'#3#222#0#5'Width'#3#170#1#0#0#9'TGro'
+'upBox'#19'LazDocPathsGroupBox'#5'Align'#7#5'alTop'#20'BorderSpacing.Around'
+#2#6#7'Caption'#6#19'LazDocPathsGroupBox'#12'ClientHeight'#3#193#0#11'Client'
+'Width'#3#154#1#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#3#210#0#3'Top'#2#6#5'W'
+'idth'#3#158#1#0#8'TListBox'#13'LazDocListBox'#5'Align'#7#5'alTop'#20'Border'
+'Spacing.Around'#2#6#8'TabOrder'#2#0#8'TopIndex'#2#255#4'Left'#2#6#6'Height'
+#2'l'#3'Top'#2#6#5'Width'#3#142#1#0#0#7'TButton'#19'LazDocAddPathButton'#25
+'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#19'LazDocAddPathButton'#7'OnCli'
+'ck'#7#24'LazDocAddPathButtonClick'#8'TabOrder'#2#1#4'Left'#2#6#6'Height'#2
+#25#3'Top'#2'z'#5'Width'#2'K'#0#0#7'TButton'#22'LazDocDeletePathButton'#25'B'
+'orderSpacing.InnerBorder'#2#2#7'Caption'#6#22'LazDocDeletePathButton'#7'OnC'
+'lick'#7#27'LazDocDeletePathButtonClick'#8'TabOrder'#2#2#4'Left'#2'Z'#6'Heig'
+'ht'#2#25#3'Top'#2'z'#5'Width'#2'K'#0#0#5'TEdit'#14'LazDocPathEdit'#7'Anchor'
+'s'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#3#4'Text'#6#14'LazDocPa'
+'thEdit'#4'Left'#2#6#6'Height'#2#23#3'Top'#3#154#0#5'Width'#3'b'#1#0#0#7'TBu'
+'tton'#18'LazDocBrowseButton'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderS'
+'pacing.InnerBorder'#2#2#7'Caption'#6#3'...'#7'OnClick'#7#23'LazDocBrowseBut'
+'tonClick'#8'TabOrder'#2#4#4'Left'#3'm'#1#6'Height'#2#23#3'Top'#3#154#0#5'Wi'
+'dth'#2#23#0#0#0#0#0#7'TButton'#12'CancelButton'#7'Anchors'#11#7'akRight'#8
+'akBottom'#0#25'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Caption'#6#6'Ca'
+'ncel'#11'ModalResult'#2#2#8'TabOrder'#2#1#4'Left'#3'X'#1#6'Height'#2#25#3'T'
+'op'#3'X'#1#5'Width'#2'K'#0#0#7'TButton'#8'OKButton'#7'Anchors'#11#7'akRight'
+#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#2'OK'#7'Defaul'
+'t'#9#11'ModalResult'#2#1#8'TabOrder'#2#2#4'Left'#3#0#1#6'Height'#2#25#3'Top'
+#3'X'#1#5'Width'#2'K'#0#0#22'TSelectDirectoryDialog'#21'SelectDirectoryDialo'
+'g'#5'Title'#6#16'Select Directory'#11'FilterIndex'#2#0#5'Title'#6#16'Select'
+' Directory'#4'left'#3'X'#1#3'top'#2#8#0#0#0
+'acing.Right'#2#6#7'Caption'#6#15'TargetFileLabel'#5'Color'#7#6'clNone'#11'P'
+'arentColor'#8#0#0#5'TEdit'#14'TargetFileEdit'#4'Left'#2#6#6'Height'#2#23#3
+'Top'#2#19#5'Width'#3#142#1#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#19
+'BorderSpacing.Right'#2#6#8'TabOrder'#2#0#4'Text'#6#14'TargetFileEdit'#0#0#0
+#0#5'TPage'#9'FormsPage'#7'Caption'#6#9'FormsPage'#11'ClientWidth'#3#170#1#12
+'ClientHeight'#3'4'#1#0#6'TLabel'#21'FormsAutoCreatedLabel'#4'Left'#2'$'#6'H'
+'eight'#2#13#3'Top'#2#10#5'Width'#3#136#0#7'Caption'#6#21'FormsAutoCreatedLa'
+'bel'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#6'TLabel'#20'FormsAvailForm'
+'sLabel'#4'Left'#3#252#0#6'Height'#2#13#3'Top'#2#10#5'Width'#3#129#0#7'Capti'
+'on'#6#20'FormsAvailFormsLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#8
+'TListBox'#23'FormsAutoCreatedListBox'#4'Left'#2'$'#6'Height'#3#242#0#3'Top'
+#2' '#5'Width'#3#168#0#11'MultiSelect'#9#8'TabOrder'#2#0#8'TopIndex'#2#255#0
+#0#8'TListBox'#22'FormsAvailFormsListBox'#4'Left'#3#244#0#6'Height'#3#242#0#3
+'Top'#2' '#5'Width'#3#168#0#11'MultiSelect'#9#8'TabOrder'#2#1#8'TopIndex'#2
+#255#0#0#6'TArrow'#29'FormsMoveAutoCreatedFormUpBtn'#4'Left'#2#6#6'Height'#2
+#24#3'Top'#2' '#5'Width'#2#24#9'ArrowType'#7#4'atUp'#7'OnClick'#7'"FormsMove'
+'AutoCreatedFormUpBtnClick'#0#0#6'TArrow FormsMoveAutoCreatedFormsDownBtn'#4
+'Left'#2#6#6'Height'#2#24#3'Top'#2'<'#5'Width'#2#24#9'ArrowType'#7#6'atDown'
+#7'OnClick'#7'$FormsMoveAutoCreatedFormDownBtnClick'#0#0#6'TArrow"FormsRemov'
+'eFromAutoCreatedFormsBtn'#4'Left'#3#212#0#6'Height'#2#24#3'Top'#2' '#5'Widt'
+'h'#2#24#9'ArrowType'#7#7'atRight'#7'OnClick'#7'''FormsRemoveFromAutoCreated'
+'FormsBtnClick'#0#0#6'TArrow'#29'FormsAddToAutoCreatedFormsBtn'#4'Left'#3#212
+#0#6'Height'#2#24#3'Top'#2'<'#5'Width'#2#24#7'OnClick'#7'"FormsAddToAutoCrea'
+'tedFormsBtnClick'#0#0#9'TCheckBox'#31'FormsAutoCreateNewFormsCheckBox'#4'Le'
+'ft'#2#6#6'Height'#2#24#3'Top'#3#22#1#5'Width'#3#158#1#5'Align'#7#8'alBottom'
+#20'BorderSpacing.Around'#2#6#7'Caption'#6#31'FormsAutoCreateNewFormsCheckBo'
+'x'#8'TabOrder'#2#2#0#0#0#5'TPage'#8'MiscPage'#7'Caption'#6#8'MiscPage'#11'C'
+'lientWidth'#3#170#1#12'ClientHeight'#3'4'#1#0#9'TCheckBox)MainUnitHasUsesSe'
+'ctionForAllUnitsCheckBox'#21'AnchorSideTop.Control'#7#30'MainUnitIsPascalSo'
+'urceCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2
+#24#3'Top'#2'$'#5'Width'#3#158#1#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2
+#6#17'BorderSpacing.Top'#2#2#19'BorderSpacing.Right'#2#6#7'Caption'#6')MainU'
+'nitHasUsesSectionForAllUnitsCheckBox'#8'TabOrder'#2#0#0#0#9'TCheckBox''Main'
+'UnitHasCreateFormStatementsCheckBox'#21'AnchorSideTop.Control'#7')MainUnitH'
+'asUsesSectionForAllUnitsCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'L'
+'eft'#2#6#6'Height'#2#24#3'Top'#2'>'#5'Width'#3#158#1#5'Align'#7#5'alTop'#18
+'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#2#19'BorderSpacing.Right'#2
+#6#7'Caption'#6'''MainUnitHasCreateFormStatementsCheckBox'#8'TabOrder'#2#1#0
+#0#9'TCheckBox'#30'MainUnitIsPascalSourceCheckBox'#4'Left'#2#6#6'Height'#2#24
+#3'Top'#2#10#5'Width'#3#158#1#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6
,#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#6#7'Caption'#6#30'Main'
+'UnitIsPascalSourceCheckBox'#8'TabOrder'#2#2#0#0#9'TCheckBox!MainUnitHasTitl'
+'eStatementCheckBox'#21'AnchorSideTop.Control'#7'''MainUnitHasCreateFormStat'
+'ementsCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'
+#2#24#3'Top'#2'X'#5'Width'#3#158#1#5'Align'#7#5'alTop'#18'BorderSpacing.Left'
+#2#6#17'BorderSpacing.Top'#2#2#19'BorderSpacing.Right'#2#6#7'Caption'#6'!Mai'
+'nUnitHasTitleStatementCheckBox'#8'TabOrder'#2#5#0#0#9'TCheckBox'#16'Runnabl'
+'eCheckBox'#21'AnchorSideTop.Control'#7'!MainUnitHasTitleStatementCheckBox'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#24#3'Top'#2'z'
+#5'Width'#3#158#1#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'BorderSp'
+'acing.Top'#2#10#19'BorderSpacing.Right'#2#6#7'Caption'#6#16'RunnableCheckBo'
+'x'#8'TabOrder'#2#3#0#0#9'TCheckBox'#19'AlwaysBuildCheckBox'#21'AnchorSideTo'
+'p.Control'#7#16'RunnableCheckBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'L'
+'eft'#2#6#6'Height'#2#24#3'Top'#3#148#0#5'Width'#3#158#1#7'Anchors'#11#5'akT'
+'op'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'
+#2#2#19'BorderSpacing.Right'#2#6#7'Caption'#6#19'AlwaysBuildCheckBox'#8'TabO'
+'rder'#2#4#0#0#0#5'TPage'#10'LazDocPage'#7'Caption'#6#10'LazDocPage'#11'Clie'
+'ntWidth'#3#170#1#12'ClientHeight'#3'4'#1#0#6'TLabel'#6'Label2'#6'Height'#2
+#13#3'Top'#3#222#0#5'Width'#3#170#1#5'Align'#7#5'alTop'#7'Caption'#6'+NOTE: '
+'only absolute paths are supported now'#5'Color'#7#6'clNone'#11'ParentColor'
+#8#0#0#9'TGroupBox'#19'LazDocPathsGroupBox'#4'Left'#2#6#6'Height'#3#210#0#3
+'Top'#2#6#5'Width'#3#158#1#5'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7
+'Caption'#6#19'LazDocPathsGroupBox'#12'ClientHeight'#3#210#0#11'ClientWidth'
+#3#158#1#8'TabOrder'#2#0#0#8'TListBox'#13'LazDocListBox'#4'Left'#2#6#6'Heigh'
+'t'#2'l'#3'Top'#2#6#5'Width'#3#146#1#5'Align'#7#5'alTop'#20'BorderSpacing.Ar'
+'ound'#2#6#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#7'TButton'#19'LazDocAddPath'
+'Button'#4'Left'#2#6#6'Height'#2#25#3'Top'#2'z'#5'Width'#2'K'#25'BorderSpaci'
+'ng.InnerBorder'#2#2#7'Caption'#6#19'LazDocAddPathButton'#7'OnClick'#7#24'La'
+'zDocAddPathButtonClick'#8'TabOrder'#2#1#0#0#7'TButton'#22'LazDocDeletePathB'
+'utton'#4'Left'#2'Z'#6'Height'#2#25#3'Top'#2'z'#5'Width'#2'K'#25'BorderSpaci'
+'ng.InnerBorder'#2#2#7'Caption'#6#22'LazDocDeletePathButton'#7'OnClick'#7#27
+'LazDocDeletePathButtonClick'#8'TabOrder'#2#2#0#0#5'TEdit'#14'LazDocPathEdit'
+#4'Left'#2#6#6'Height'#2#23#3'Top'#3#154#0#5'Width'#3'f'#1#7'Anchors'#11#5'a'
+'kTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#3#4'Text'#6#14'LazDocPathEdit'#0
+#0#7'TButton'#18'LazDocBrowseButton'#4'Left'#3'q'#1#6'Height'#2#23#3'Top'#3
+#154#0#5'Width'#2#23#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.In'
+'nerBorder'#2#2#7'Caption'#6#3'...'#7'OnClick'#7#23'LazDocBrowseButtonClick'
+#8'TabOrder'#2#4#0#0#0#0#5'TPage'#8'SavePage'#7'Caption'#6#8'SavePage'#11'Cl'
+'ientWidth'#3#170#1#12'ClientHeight'#3'4'#1#0#9'TCheckBox'#26'SaveClosedUnit'
+'InfoCheckBox'#4'Left'#2#6#6'Height'#2#24#3'Top'#2#6#5'Width'#3#158#1#5'Alig'
+'n'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'Borde'
+'rSpacing.Right'#2#6#7'Caption'#6#26'SaveClosedUnitInfoCheckBox'#8'TabOrder'
+#2#0#0#0#9'TCheckBox'#31'SaveOnlyProjectUnitInfoCheckBox'#21'AnchorSideTop.C'
+'ontrol'#7#26'SaveClosedUnitInfoCheckBox'#18'AnchorSideTop.Side'#7#9'asrBott'
+'om'#4'Left'#2#6#6'Height'#2#24#3'Top'#2' '#5'Width'#3#158#1#5'Align'#7#5'al'
+'Top'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#2#19'BorderSpacing.'
+'Right'#2#6#7'Caption'#6#31'SaveOnlyProjectUnitInfoCheckBox'#8'TabOrder'#2#1
+#0#0#11'TRadioGroup'#29'SaveSessionLocationRadioGroup'#21'AnchorSideTop.Cont'
+'rol'#7#31'SaveOnlyProjectUnitInfoCheckBox'#18'AnchorSideTop.Side'#7#9'asrBo'
+'ttom'#4'Left'#2#7#6'Height'#2'u'#3'Top'#2'C'#5'Width'#3#157#1#8'AutoFill'#9
+#17'BorderSpacing.Top'#2#5#20'BorderSpacing.Around'#2#6#7'Caption'#6#29'Save'
+'SessionLocationRadioGroup'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSiz'
+'ing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogen'
+'ousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResi'
+'ze'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Sh'
+'rinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRig'
+'htThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#8'TabOrder'#2#2#0#0#0
+#0#7'TButton'#12'CancelButton'#4'Left'#3'X'#1#6'Height'#2#25#3'Top'#3'X'#1#5
+'Width'#2'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#25'BorderSpacing.InnerBo'
+'rder'#2#2#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'
+#2#1#0#0#7'TButton'#8'OKButton'#4'Left'#3#0#1#6'Height'#2#25#3'Top'#3'X'#1#5
+'Width'#2'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#25'BorderSpacing.InnerBo'
+'rder'#2#2#7'Caption'#6#2'OK'#7'Default'#9#11'ModalResult'#2#1#8'TabOrder'#2
+#2#0#0#22'TSelectDirectoryDialog'#21'SelectDirectoryDialog'#5'Title'#6#16'Se'
,'lect Directory'#11'FilterIndex'#2#0#4'left'#3'X'#1#3'top'#2#8#0#0#0
]);

View File

@ -36,24 +36,9 @@ unit ProjectOpts;
interface
uses
Arrow,
Buttons,
Classes,
CodeToolManager,
Controls,
Dialogs,
ExtCtrls,
Forms,
Graphics,
IDEOptionDefs,
IDEWindowIntf,
LazarusIDEStrConsts,
LCLIntf,
LResources,
Project,
ProjectIntf,
StdCtrls,
SysUtils;
Arrow, Buttons, LCLProc, Classes, CodeToolManager, Controls, Dialogs,
ExtCtrls, Forms, Graphics, IDEOptionDefs, IDEWindowIntf, LazarusIDEStrConsts,
LCLIntf, LResources, Project, ProjectIntf, StdCtrls, SysUtils;
type
@ -62,12 +47,14 @@ type
TProjectOptionsDialog = class(TForm)
Label2: TLabel;
// Application
Notebook: TNotebook;
Page1: TPage;
Page2: TPage;
Page3: TPage;
Page4: TPage;
ApplicationPage: TPage;
FormsPage: TPage;
MiscPage: TPage;
LazDocPage: TPage;
SavePage: TPage;
// Application
AppSettingsGroupBox: TGroupBox;
OutputSettingsGroupBox: TGroupBox;
SelectDirectoryDialog: TSelectDirectoryDialog;
@ -89,8 +76,6 @@ type
FormsMoveAutoCreatedFormsDownBtn: TArrow;
// Misc
SaveClosedUnitInfoCheckBox: TCheckBox;
SaveOnlyProjectUnitInfoCheckBox: TCheckBox;
MainUnitIsPascalSourceCheckBox: TCheckBox;
MainUnitHasUsesSectionForAllUnitsCheckBox: TCheckBox;
MainUnitHasCreateFormStatementsCheckBox: TCheckBox;
@ -106,6 +91,11 @@ type
LazDocPathsGroupBox: TGroupBox;
LazDocListBox: TListBox;
// Session
SaveClosedUnitInfoCheckBox: TCheckBox;
SaveOnlyProjectUnitInfoCheckBox: TCheckBox;
SaveSessionLocationRadioGroup: TRadioGroup;
// buttons at bottom
OKButton: TButton;
CancelButton: TButton;
@ -127,6 +117,7 @@ type
procedure SetupFormsPage(PageIndex: Integer);
procedure SetupMiscPage(PageIndex: Integer);
procedure SetupLazDocPage(PageIndex: Integer);
procedure SetupSavePage(PageIndex: Integer);
procedure FillAutoCreateFormsListbox;
procedure FillAvailFormsListBox;
function IndexOfAutoCreateForm(FormName: String): Integer;
@ -144,6 +135,10 @@ type
function ShowProjectOptionsDialog(AProject: TProject): TModalResult;
function ProjectSessionStorageToLocalizedName(s: TProjectSessionStorage): string;
function LocalizedNameToProjectSessionStorage(
const s: string): TProjectSessionStorage;
var
ProjectOptionsDialog: TProjectOptionsDialog;
@ -161,6 +156,27 @@ begin
end;
end;
function ProjectSessionStorageToLocalizedName(s: TProjectSessionStorage
): string;
begin
case s of
pssInProjectInfo: Result:=lisPOSaveInLpiFil;
pssInProjectDir: Result:=lisPOSaveInLpsFileInProjectDirectory;
pssInIDEConfig: Result:=lisPOSaveInIDEConfigDirectory;
pssNone: Result:=lisPODoNotSaveAnySessionInfo;
else
RaiseGDBException('');
end;
end;
function LocalizedNameToProjectSessionStorage(const s: string
): TProjectSessionStorage;
begin
for Result:=Low(TProjectSessionStorage) to High(TProjectSessionStorage) do
if ProjectSessionStorageToLocalizedName(Result)=s then exit;
Result:=pssInProjectInfo;
end;
{ TProjectOptionsDialog }
@ -178,6 +194,7 @@ begin
SetupFormsPage(1);
SetupMiscPage(2);
SetupLazDocPage(3);
SetupSavePage(4);
ProjectOptionsResize(TheOwner);
@ -207,6 +224,23 @@ begin
LazDocPathEdit.Clear;
end;
procedure TProjectOptionsDialog.SetupSavePage(PageIndex: Integer);
var
s: TProjectSessionStorage;
begin
NoteBook.Page[PageIndex].Caption := dlgPOSaveSession;
SaveClosedUnitInfoCheckBox.Caption := dlgSaveEditorInfo;
SaveOnlyProjectUnitInfoCheckBox.Caption := dlgSaveEditorInfoProject;
{$IFNDEF EnableProjectSessions}
SaveSessionLocationRadioGroup.Enabled:=false;
{$ENDIF}
SaveSessionLocationRadioGroup.Caption:=lisPOSaveSessionInformationIn;
for s:=Low(TProjectSessionStorage) to High(TProjectSessionStorage) do
SaveSessionLocationRadioGroup.Items.Add(
ProjectSessionStorageToLocalizedName(s));
end;
procedure TProjectOptionsDialog.SetupFormsPage(PageIndex: Integer);
begin
NoteBook.Page[PageIndex].Caption := dlgPOFroms;
@ -220,8 +254,6 @@ procedure TProjectOptionsDialog.SetupMiscPage(PageIndex: Integer);
begin
NoteBook.Page[PageIndex].Caption := dlgPOMisc;
SaveClosedUnitInfoCheckBox.Caption := dlgSaveEditorInfo;
SaveOnlyProjectUnitInfoCheckBox.Caption := dlgSaveEditorInfoProject;
MainUnitIsPascalSourceCheckBox.Caption := lisMainUnitIsPascalSource;
MainUnitHasUsesSectionForAllUnitsCheckBox.Caption := lisMainUnitHasUsesSectionContainingAllUnitsOfProject;
MainUnitHasCreateFormStatementsCheckBox.Caption := lisMainUnitHasApplicationCreateFormStatements;
@ -249,6 +281,7 @@ begin
SaveClosedUnitInfoCheckBox.Checked := (pfSaveClosedUnits in AProject.Flags);
SaveOnlyProjectUnitInfoCheckBox.Checked :=
(pfSaveOnlyProjectUnits in AProject.Flags);
SaveSessionLocationRadioGroup.ItemIndex:=ord(AProject.SessionStorage);
MainUnitIsPascalSourceCheckBox.Checked :=
(pfMainUnitIsPascalSource in AProject.Flags);
@ -304,6 +337,11 @@ begin
SetProjectFlag(pfRunnable, RunnableCheckBox.Checked);
SetProjectFlag(pfAlwaysBuild, AlwaysBuildCheckBox.Checked);
Project.Flags := NewFlags;
if SaveSessionLocationRadioGroup.ItemIndex>=0 then
Project.SessionStorage:=LocalizedNameToProjectSessionStorage(
SaveSessionLocationRadioGroup.Items[
SaveSessionLocationRadioGroup.ItemIndex]);
Project.AutoCreateForms := FormsAutoCreateNewFormsCheckBox.Checked;
@ -554,7 +592,7 @@ begin
Height := FormsAutoCreateNewFormsCheckBox.Top - Top - 6;
Left := FormsMoveAutoCreatedFormUpBtn.Left +
FormsMoveAutoCreatedFormUpBtn.Width + 6;
Width := (Page2.Width - Left * 2 - 6) div 2;
Width := (FormsPage.Width - Left * 2 - 6) div 2;
end;
with FormsAddToAutoCreatedFormsBtn do

View File

@ -427,10 +427,10 @@ type
TProjectFlags = set of TProjectFlag;
TProjectSessionStorage = (
pssInProjectInfo, // save session info in .lpi file
pssInProjectDir, // save session info in .lps file in project directory
pssInIDEConfig, // save session info in IDE config directory
pssNone // do not save any session info
pssInProjectInfo, // save session info in .lpi file
pssInProjectDir, // save session info in .lps file in project directory
pssInIDEConfig, // save session info in IDE config directory
pssNone // do not save any session info
);
TProjectSessionStorages = set of TProjectSessionStorage;