educationlaz: propevents

git-svn-id: trunk@23289 -
This commit is contained in:
mattias 2009-12-26 10:59:14 +00:00
parent 9966c2200c
commit 8732cff32f
19 changed files with 759 additions and 254 deletions

2
.gitattributes vendored
View File

@ -722,6 +722,8 @@ components/education/eduoptionsdlg.pas svneol=native#text/plain
components/education/edupkgsystem.lfm svneol=native#text/plain components/education/edupkgsystem.lfm svneol=native#text/plain
components/education/edupkgsystem.lrs svneol=native#text/plain components/education/edupkgsystem.lrs svneol=native#text/plain
components/education/edupkgsystem.pas svneol=native#text/plain components/education/edupkgsystem.pas svneol=native#text/plain
components/education/edupropsevents.lfm svneol=native#text/plain
components/education/edupropsevents.pas svneol=native#text/plain
components/filebrowser/frmconfigfilebrowser.lfm svneol=native#text/plain components/filebrowser/frmconfigfilebrowser.lfm svneol=native#text/plain
components/filebrowser/frmconfigfilebrowser.lrs svneol=native#text/pascal components/filebrowser/frmconfigfilebrowser.lrs svneol=native#text/pascal
components/filebrowser/frmconfigfilebrowser.pp svneol=native#text/plain components/filebrowser/frmconfigfilebrowser.pp svneol=native#text/plain

View File

@ -2,15 +2,9 @@ Package EducationLaz
==================== ====================
This package helps to setup the IDE for courses, training and education. This package helps to setup the IDE for courses, training and education.
Install this package in the IDE and setup it in
Environment / Options .. / Education
The documentation can be found here:
http://wiki.lazarus.freepascal.org/Lazarus_for_education
ToDo:
register menu item for options dialog
option to hide various tools
option to hide menu items for frames
option to hide menu items for packages
option to hide menu items for forms
option to hide components in the component palette
speed button for single file program
option component name at create
option file name at create
option Form name at create

View File

@ -15,7 +15,7 @@
<Description Value="IDE package for training, courses and education."/> <Description Value="IDE package for training, courses and education."/>
<License Value="LGPL-2 or any later"/> <License Value="LGPL-2 or any later"/>
<Version Major="1" Release="1"/> <Version Major="1" Release="1"/>
<Files Count="7"> <Files Count="8">
<Item1> <Item1>
<Filename Value="eduenvoptsframe.pas"/> <Filename Value="eduenvoptsframe.pas"/>
<HasRegisterProc Value="True"/> <HasRegisterProc Value="True"/>
@ -49,8 +49,14 @@
<HasRegisterProc Value="True"/> <HasRegisterProc Value="True"/>
<UnitName Value="EduNewProgram"/> <UnitName Value="EduNewProgram"/>
</Item7> </Item7>
<Item8>
<Filename Value="edupropsevents.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="EduPropsEvents"/>
</Item8>
</Files> </Files>
<i18n> <i18n>
<EnableI18N Value="True"/>
<OutDir Value="languages"/> <OutDir Value="languages"/>
</i18n> </i18n>
<Type Value="RunAndDesignTime"/> <Type Value="RunAndDesignTime"/>

View File

@ -2,13 +2,13 @@
This source is only used to compile and install the package. This source is only used to compile and install the package.
} }
unit EducationLaz; unit educationlaz;
interface interface
uses uses
EduEnvOptsFrame, EduOptions, EduPkgSystem, EduCompPalette, EduMenu, EduEnvOptsFrame, EduOptions, EduPkgSystem, EduCompPalette, EduMenu,
EduNewProgram, LazarusPackageIntf; EduNewProgram, EduPropsEvents, LazarusPackageIntf;
implementation implementation
@ -19,6 +19,7 @@ begin
RegisterUnit('EduCompPalette', @EduCompPalette.Register); RegisterUnit('EduCompPalette', @EduCompPalette.Register);
RegisterUnit('EduMenu', @EduMenu.Register); RegisterUnit('EduMenu', @EduMenu.Register);
RegisterUnit('EduNewProgram', @EduNewProgram.Register); RegisterUnit('EduNewProgram', @EduNewProgram.Register);
RegisterUnit('EduPropsEvents', @EduPropsEvents.Register);
end; end;
initialization initialization

View File

@ -5,8 +5,8 @@ inherited EduCompPaletteFrame: TEduCompPaletteFrame
ClientWidth = 480 ClientWidth = 480
OnClick = FrameClick OnClick = FrameClick
TabOrder = 0 TabOrder = 0
DesignLeft = 623 DesignLeft = 906
DesignTop = 145 DesignTop = 133
object ComponentsGroupBox: TGroupBox[0] object ComponentsGroupBox: TGroupBox[0]
AnchorSideTop.Control = Owner AnchorSideTop.Control = Owner
AnchorSideBottom.Control = Owner AnchorSideBottom.Control = Owner

View File

@ -3,7 +3,7 @@
LazarusResources.Add('TEduCompPaletteFrame','FORMDATA',[ LazarusResources.Add('TEduCompPaletteFrame','FORMDATA',[
'TPF0'#241#20'TEduCompPaletteFrame'#19'EduCompPaletteFrame'#6'Height'#3#153#1 'TPF0'#241#20'TEduCompPaletteFrame'#19'EduCompPaletteFrame'#6'Height'#3#153#1
+#5'Width'#3#224#1#12'ClientHeight'#3#153#1#11'ClientWidth'#3#224#1#7'OnClick' +#5'Width'#3#224#1#12'ClientHeight'#3#153#1#11'ClientWidth'#3#224#1#7'OnClick'
+#7#10'FrameClick'#8'TabOrder'#2#0#10'DesignLeft'#3'o'#2#9'DesignTop'#3#145#0 +#7#10'FrameClick'#8'TabOrder'#2#0#10'DesignLeft'#3#138#3#9'DesignTop'#3#133#0
+#0#242#2#0#9'TGroupBox'#18'ComponentsGroupBox'#21'AnchorSideTop.Control'#7#5 +#0#242#2#0#9'TGroupBox'#18'ComponentsGroupBox'#21'AnchorSideTop.Control'#7#5
+'Owner'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9 +'Owner'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9
+'asrBottom'#4'Left'#3#142#0#6'Height'#3#141#1#3'Top'#2#6#5'Width'#3'L'#1#5'A' +'asrBottom'#4'Left'#3#142#0#6'Height'#3#141#1#3'Top'#2#6#5'Width'#3'L'#1#5'A'

View File

@ -324,7 +324,7 @@ end;
function TEduCompPaletteFrame.GetTitle: String; function TEduCompPaletteFrame.GetTitle: String;
begin begin
Result:='Component palette'; Result:=ersEduCompPaletteTitle;
end; end;
procedure TEduCompPaletteFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TEduCompPaletteFrame.ReadSettings(AOptions: TAbstractIDEOptions);

View File

@ -5,15 +5,15 @@ inherited EduEnvFrame: TEduEnvFrame
ClientWidth = 495 ClientWidth = 495
OnClick = FrameClick OnClick = FrameClick
TabOrder = 0 TabOrder = 0
DesignLeft = 352 DesignLeft = 725
DesignTop = 192 DesignTop = 198
object EnableCheckBox: TCheckBox[0] object EnableCheckBox: TCheckBox[0]
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner AnchorSideTop.Control = Owner
Left = 6 Left = 6
Height = 18 Height = 17
Top = 6 Top = 6
Width = 124 Width = 99
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'EnableCheckBox' Caption = 'EnableCheckBox'
TabOrder = 0 TabOrder = 0

View File

@ -3,9 +3,9 @@
LazarusResources.Add('TEduEnvFrame','FORMDATA',[ LazarusResources.Add('TEduEnvFrame','FORMDATA',[
'TPF0'#241#12'TEduEnvFrame'#11'EduEnvFrame'#6'Height'#3#132#1#5'Width'#3#239#1 'TPF0'#241#12'TEduEnvFrame'#11'EduEnvFrame'#6'Height'#3#132#1#5'Width'#3#239#1
+#12'ClientHeight'#3#132#1#11'ClientWidth'#3#239#1#7'OnClick'#7#10'FrameClick' +#12'ClientHeight'#3#132#1#11'ClientWidth'#3#239#1#7'OnClick'#7#10'FrameClick'
+#8'TabOrder'#2#0#10'DesignLeft'#3'`'#1#9'DesignTop'#3#192#0#0#242#2#0#9'TChe' +#8'TabOrder'#2#0#10'DesignLeft'#3#213#2#9'DesignTop'#3#198#0#0#242#2#0#9'TCh'
+'ckBox'#14'EnableCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSi' +'eckBox'#14'EnableCheckBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorS'
+'deTop.Control'#7#5'Owner'#4'Left'#2#6#6'Height'#2#18#3'Top'#2#6#5'Width'#2 +'ideTop.Control'#7#5'Owner'#4'Left'#2#6#6'Height'#2#17#3'Top'#2#6#5'Width'#2
+'|'#20'BorderSpacing.Around'#2#6#7'Caption'#6#14'EnableCheckBox'#8'TabOrder' +'c'#20'BorderSpacing.Around'#2#6#7'Caption'#6#14'EnableCheckBox'#8'TabOrder'
+#2#0#0#0#0 +#2#0#0#0#0
]); ]);

View File

@ -98,12 +98,12 @@ end;
function TEduEnvFrame.GetTitle: String; function TEduEnvFrame.GetTitle: String;
begin begin
Result:='General'; Result:=ersEduEnvOptsFrameTitle;
end; end;
procedure TEduEnvFrame.Setup(ADialog: TAbstractOptionsEditorDialog); procedure TEduEnvFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
begin begin
EnableCheckBox.Caption:='Enable education settings'; EnableCheckBox.Caption:=ersEnableEduCheckBoxCaption;
end; end;
procedure TEduEnvFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TEduEnvFrame.ReadSettings(AOptions: TAbstractIDEOptions);

View File

@ -5,26 +5,26 @@ inherited EduMenuFrame: TEduMenuFrame
ClientWidth = 437 ClientWidth = 437
OnClick = FrameClick OnClick = FrameClick
TabOrder = 0 TabOrder = 0
DesignLeft = 297 DesignLeft = 437
DesignTop = 171 DesignTop = 99
object MenusGroupBox: TGroupBox[0] object MenusGroupBox: TGroupBox[0]
Left = 176 Left = 143
Height = 289 Height = 289
Top = 6 Top = 6
Width = 255 Width = 288
Align = alClient Align = alClient
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'MenusGroupBox' Caption = 'MenusGroupBox'
ClientHeight = 267 ClientHeight = 271
ClientWidth = 247 ClientWidth = 284
TabOrder = 0 TabOrder = 0
object MenusTreeView: TTreeView object MenusTreeView: TTreeView
Left = 0 Left = 0
Height = 267 Height = 271
Top = 0 Top = 0
Width = 247 Width = 284
Align = alClient Align = alClient
DefaultItemHeight = 19 DefaultItemHeight = 15
ReadOnly = True ReadOnly = True
TabOrder = 0 TabOrder = 0
OnMouseDown = MenusTreeViewMouseDown OnMouseDown = MenusTreeViewMouseDown
@ -35,7 +35,7 @@ inherited EduMenuFrame: TEduMenuFrame
Left = 0 Left = 0
Height = 301 Height = 301
Top = 0 Top = 0
Width = 170 Width = 137
Align = alLeft Align = alLeft
AutoSize = True AutoSize = True
ChildSizing.LeftRightSpacing = 6 ChildSizing.LeftRightSpacing = 6
@ -43,13 +43,13 @@ inherited EduMenuFrame: TEduMenuFrame
ChildSizing.HorizontalSpacing = 6 ChildSizing.HorizontalSpacing = 6
ChildSizing.VerticalSpacing = 6 ChildSizing.VerticalSpacing = 6
ClientHeight = 301 ClientHeight = 301
ClientWidth = 170 ClientWidth = 137
TabOrder = 1 TabOrder = 1
object ShowAllButton: TButton object ShowAllButton: TButton
Left = 7 Left = 7
Height = 20 Height = 23
Top = 7 Top = 7
Width = 156 Width = 123
Align = alTop Align = alTop
AutoSize = True AutoSize = True
Caption = 'ShowAllButton' Caption = 'ShowAllButton'
@ -58,9 +58,9 @@ inherited EduMenuFrame: TEduMenuFrame
end end
object ShowAllChildsButton: TButton object ShowAllChildsButton: TButton
Left = 7 Left = 7
Height = 20 Height = 23
Top = 33 Top = 36
Width = 156 Width = 123
Align = alTop Align = alTop
AutoSize = True AutoSize = True
Caption = 'ShowAllChildsButton' Caption = 'ShowAllChildsButton'

View File

@ -3,24 +3,24 @@
LazarusResources.Add('TEduMenuFrame','FORMDATA',[ LazarusResources.Add('TEduMenuFrame','FORMDATA',[
'TPF0'#241#13'TEduMenuFrame'#12'EduMenuFrame'#6'Height'#3'-'#1#5'Width'#3#181 'TPF0'#241#13'TEduMenuFrame'#12'EduMenuFrame'#6'Height'#3'-'#1#5'Width'#3#181
+#1#12'ClientHeight'#3'-'#1#11'ClientWidth'#3#181#1#7'OnClick'#7#10'FrameClic' +#1#12'ClientHeight'#3'-'#1#11'ClientWidth'#3#181#1#7'OnClick'#7#10'FrameClic'
+'k'#8'TabOrder'#2#0#10'DesignLeft'#3')'#1#9'DesignTop'#3#171#0#0#242#2#0#9'T' +'k'#8'TabOrder'#2#0#10'DesignLeft'#3#181#1#9'DesignTop'#2'c'#0#242#2#0#9'TGr'
+'GroupBox'#13'MenusGroupBox'#4'Left'#3#176#0#6'Height'#3'!'#1#3'Top'#2#6#5'W' +'oupBox'#13'MenusGroupBox'#4'Left'#3#143#0#6'Height'#3'!'#1#3'Top'#2#6#5'Wid'
+'idth'#3#255#0#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#7'Caption' +'th'#3' '#1#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#7'Caption'#6
+#6#13'MenusGroupBox'#12'ClientHeight'#3#11#1#11'ClientWidth'#3#247#0#8'TabOr' +#13'MenusGroupBox'#12'ClientHeight'#3#15#1#11'ClientWidth'#3#28#1#8'TabOrder'
+'der'#2#0#0#9'TTreeView'#13'MenusTreeView'#4'Left'#2#0#6'Height'#3#11#1#3'To' +#2#0#0#9'TTreeView'#13'MenusTreeView'#4'Left'#2#0#6'Height'#3#15#1#3'Top'#2#0
+'p'#2#0#5'Width'#3#247#0#5'Align'#7#8'alClient'#17'DefaultItemHeight'#2#19#8 +#5'Width'#3#28#1#5'Align'#7#8'alClient'#17'DefaultItemHeight'#2#15#8'ReadOnl'
+'ReadOnly'#9#8'TabOrder'#2#0#11'OnMouseDown'#7#22'MenusTreeViewMouseDown'#7 +'y'#9#8'TabOrder'#2#0#11'OnMouseDown'#7#22'MenusTreeViewMouseDown'#7'Options'
+'Options'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedN' +#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11
+'odes'#11'tvoReadOnly'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoShowRoot'#11 +'tvoReadOnly'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoShowRoot'#11'tvoTool'
+'tvoToolTips'#0#0#0#0#242#2#1#6'TPanel'#15'EduMenuBtnPanel'#4'Left'#2#0#6'He' +'Tips'#0#0#0#0#242#2#1#6'TPanel'#15'EduMenuBtnPanel'#4'Left'#2#0#6'Height'#3
+'ight'#3'-'#1#3'Top'#2#0#5'Width'#3#170#0#5'Align'#7#6'alLeft'#8'AutoSize'#9 +'-'#1#3'Top'#2#0#5'Width'#3#137#0#5'Align'#7#6'alLeft'#8'AutoSize'#9#28'Chil'
+#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29 +'dSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'Child'
+'ChildSizing.HorizontalSpacing'#2#6#27'ChildSizing.VerticalSpacing'#2#6#12'C' +'Sizing.HorizontalSpacing'#2#6#27'ChildSizing.VerticalSpacing'#2#6#12'Client'
+'lientHeight'#3'-'#1#11'ClientWidth'#3#170#0#8'TabOrder'#2#1#0#7'TButton'#13 +'Height'#3'-'#1#11'ClientWidth'#3#137#0#8'TabOrder'#2#1#0#7'TButton'#13'Show'
+'ShowAllButton'#4'Left'#2#7#6'Height'#2#20#3'Top'#2#7#5'Width'#3#156#0#5'Ali' +'AllButton'#4'Left'#2#7#6'Height'#2#23#3'Top'#2#7#5'Width'#2'{'#5'Align'#7#5
+'gn'#7#5'alTop'#8'AutoSize'#9#7'Caption'#6#13'ShowAllButton'#7'OnClick'#7#18 +'alTop'#8'AutoSize'#9#7'Caption'#6#13'ShowAllButton'#7'OnClick'#7#18'ShowAll'
+'ShowAllButtonClick'#8'TabOrder'#2#0#0#0#7'TButton'#19'ShowAllChildsButton'#4 +'ButtonClick'#8'TabOrder'#2#0#0#0#7'TButton'#19'ShowAllChildsButton'#4'Left'
+'Left'#2#7#6'Height'#2#20#3'Top'#2'!'#5'Width'#3#156#0#5'Align'#7#5'alTop'#8 +#2#7#6'Height'#2#23#3'Top'#2'$'#5'Width'#2'{'#5'Align'#7#5'alTop'#8'AutoSize'
+'AutoSize'#9#7'Caption'#6#19'ShowAllChildsButton'#7'OnClick'#7#24'ShowAllChi' +#9#7'Caption'#6#19'ShowAllChildsButton'#7'OnClick'#7#24'ShowAllChildsButtonC'
+'ldsButtonClick'#8'TabOrder'#2#1#0#0#0#0 +'lick'#8'TabOrder'#2#1#0#0#0#0
]); ]);

View File

@ -294,7 +294,7 @@ end;
function TEduMenuFrame.GetTitle: String; function TEduMenuFrame.GetTitle: String;
begin begin
Result:='Menus'; Result:=ersEduMenuTitle
end; end;
procedure TEduMenuFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TEduMenuFrame.ReadSettings(AOptions: TAbstractIDEOptions);

View File

@ -4,24 +4,24 @@ inherited EduNewPrgFrame: TEduNewPrgFrame
ClientHeight = 320 ClientHeight = 320
ClientWidth = 453 ClientWidth = 453
TabOrder = 0 TabOrder = 0
DesignLeft = 297 DesignLeft = 795
DesignTop = 171 DesignTop = 54
object SrcGroupBox: TGroupBox[0] object SrcGroupBox: TGroupBox[0]
Left = 6 Left = 6
Height = 258 Height = 262
Top = 56 Top = 52
Width = 441 Width = 441
Align = alClient Align = alClient
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'SrcGroupBox' Caption = 'SrcGroupBox'
ClientHeight = 236 ClientHeight = 244
ClientWidth = 433 ClientWidth = 437
TabOrder = 0 TabOrder = 0
object SrcSynEdit: TSynEdit object SrcSynEdit: TSynEdit
Left = 0 Left = 0
Height = 210 Height = 218
Top = 26 Top = 26
Width = 433 Width = 437
Align = alClient Align = alClient
Font.Height = 12 Font.Height = 12
Font.Name = 'Monaco' Font.Name = 'Monaco'
@ -30,7 +30,8 @@ inherited EduNewPrgFrame: TEduNewPrgFrame
ParentColor = False ParentColor = False
ParentFont = False ParentFont = False
TabOrder = 0 TabOrder = 0
Gutter.Width = 55 BookMarkOptions.OnChange = nil
Gutter.Width = 61
Gutter.MouseActions = < Gutter.MouseActions = <
item item
Shift = [] Shift = []
@ -608,7 +609,7 @@ inherited EduNewPrgFrame: TEduNewPrgFrame
Width = 23 Width = 23
end end
object TSynGutterLineNumber object TSynGutterLineNumber
Width = 15 Width = 21
MouseActions = <> MouseActions = <>
MarkupInfo.Background = clBtnFace MarkupInfo.Background = clBtnFace
MarkupInfo.Foreground = clNone MarkupInfo.Foreground = clNone
@ -715,7 +716,7 @@ inherited EduNewPrgFrame: TEduNewPrgFrame
Left = 0 Left = 0
Height = 26 Height = 26
Top = 0 Top = 0
Width = 433 Width = 437
Caption = 'SrcToolBar' Caption = 'SrcToolBar'
TabOrder = 1 TabOrder = 1
object SrcLoadDefaultSrcToolButton: TToolButton object SrcLoadDefaultSrcToolButton: TToolButton
@ -735,38 +736,38 @@ inherited EduNewPrgFrame: TEduNewPrgFrame
end end
object OptsPanel: TPanel[1] object OptsPanel: TPanel[1]
Left = 0 Left = 0
Height = 50 Height = 46
Top = 0 Top = 0
Width = 453 Width = 453
Align = alTop Align = alTop
AutoSize = True AutoSize = True
ChildSizing.Layout = cclTopToBottomThenLeftToRight ChildSizing.Layout = cclTopToBottomThenLeftToRight
ChildSizing.ControlsPerLine = 2 ChildSizing.ControlsPerLine = 2
ClientHeight = 50 ClientHeight = 46
ClientWidth = 453 ClientWidth = 453
TabOrder = 1 TabOrder = 1
object AddToNewDlgCheckBox: TCheckBox object AddToNewDlgCheckBox: TCheckBox
Left = 6 Left = 6
Height = 18 Height = 17
Top = 6 Top = 6
Width = 176 Width = 139
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'AddToNewDlgCheckBox' Caption = 'AddToNewDlgCheckBox'
TabOrder = 0 TabOrder = 0
end end
object AddNewPrgBtnCheckBox: TCheckBox object AddNewPrgBtnCheckBox: TCheckBox
Left = 6 Left = 6
Height = 18 Height = 17
Top = 30 Top = 29
Width = 176 Width = 139
Caption = 'AddNewPrgBtnCheckBox' Caption = 'AddNewPrgBtnCheckBox'
TabOrder = 1 TabOrder = 1
end end
object AddNewPrgMenuItmCheckBox: TCheckBox object AddNewPrgMenuItmCheckBox: TCheckBox
Left = 188 Left = 151
Height = 18 Height = 17
Top = 6 Top = 6
Width = 211 Width = 165
Caption = 'AddNewPrgMenuItmCheckBox' Caption = 'AddNewPrgMenuItmCheckBox'
TabOrder = 2 TabOrder = 2
end end

View File

@ -3,164 +3,164 @@
LazarusResources.Add('TEduNewPrgFrame','FORMDATA',[ LazarusResources.Add('TEduNewPrgFrame','FORMDATA',[
'TPF0'#241#15'TEduNewPrgFrame'#14'EduNewPrgFrame'#6'Height'#3'@'#1#5'Width'#3 'TPF0'#241#15'TEduNewPrgFrame'#14'EduNewPrgFrame'#6'Height'#3'@'#1#5'Width'#3
+#197#1#12'ClientHeight'#3'@'#1#11'ClientWidth'#3#197#1#8'TabOrder'#2#0#10'De' +#197#1#12'ClientHeight'#3'@'#1#11'ClientWidth'#3#197#1#8'TabOrder'#2#0#10'De'
+'signLeft'#3')'#1#9'DesignTop'#3#171#0#0#242#2#0#9'TGroupBox'#11'SrcGroupBox' +'signLeft'#3#27#3#9'DesignTop'#2'6'#0#242#2#0#9'TGroupBox'#11'SrcGroupBox'#4
+#4'Left'#2#6#6'Height'#3#2#1#3'Top'#2'8'#5'Width'#3#185#1#5'Align'#7#8'alCli' +'Left'#2#6#6'Height'#3#6#1#3'Top'#2'4'#5'Width'#3#185#1#5'Align'#7#8'alClien'
+'ent'#20'BorderSpacing.Around'#2#6#7'Caption'#6#11'SrcGroupBox'#12'ClientHei' +'t'#20'BorderSpacing.Around'#2#6#7'Caption'#6#11'SrcGroupBox'#12'ClientHeigh'
+'ght'#3#236#0#11'ClientWidth'#3#177#1#8'TabOrder'#2#0#0#8'TSynEdit'#10'SrcSy' +'t'#3#244#0#11'ClientWidth'#3#181#1#8'TabOrder'#2#0#0#8'TSynEdit'#10'SrcSynE'
+'nEdit'#4'Left'#2#0#6'Height'#3#210#0#3'Top'#2#26#5'Width'#3#177#1#5'Align'#7 +'dit'#4'Left'#2#0#6'Height'#3#218#0#3'Top'#2#26#5'Width'#3#181#1#5'Align'#7#8
+#8'alClient'#11'Font.Height'#2#12#9'Font.Name'#6#6'Monaco'#10'Font.Pitch'#7#7 +'alClient'#11'Font.Height'#2#12#9'Font.Name'#6#6'Monaco'#10'Font.Pitch'#7#7
+'fpFixed'#12'Font.Quality'#7#16'fqNonAntialiased'#11'ParentColor'#8#10'Paren' +'fpFixed'#12'Font.Quality'#7#16'fqNonAntialiased'#11'ParentColor'#8#10'Paren'
+'tFont'#8#8'TabOrder'#2#0#12'Gutter.Width'#2'7'#19'Gutter.MouseActions'#14#1 +'tFont'#8#8'TabOrder'#2#0#24'BookMarkOptions.OnChange'#13#12'Gutter.Width'#2
+#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'cc' +'='#19'Gutter.MouseActions'#14#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7
+'Any'#8'ClickDir'#7#6'cdDown'#7'Command'#2#13#9'MoveCaret'#8#6'Option'#2#0#8 +#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#13
+'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10 +#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'
+'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#12#9'MoveCaret' +#11#0#6'Button'#7#7'mbRight'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cd'
+#8#6'Option'#2#0#8'Priority'#2#0#0#0#11'Highlighter'#7#19'SrcSynFreePascalSy' +'Up'#7'Command'#2#12#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#0#11'Hig'
+'n'#10'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'ShortCut'#2'&'#0#1#7'Command' +'hlighter'#7#19'SrcSynFreePascalSyn'#10'Keystrokes'#14#1#7'Command'#7#4'ecUp'
+#7#7'ecSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7#10'ecScrollUp'#8'ShortCut'#3 +#8'ShortCut'#2'&'#0#1#7'Command'#7#7'ecSelUp'#8'ShortCut'#3'& '#0#1#7'Comman'
+'&@'#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'('#0#1#7'Command'#7#9'ecSelDow' +'d'#7#10'ecScrollUp'#8'ShortCut'#3'&@'#0#1#7'Command'#7#6'ecDown'#8'ShortCut'
+'n'#8'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrollDown'#8'ShortCut'#3'(@'#0#1 +#2'('#0#1#7'Command'#7#9'ecSelDown'#8'ShortCut'#3'( '#0#1#7'Command'#7#12'ec'
+#7'Command'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7'Command'#7#9'ecSelLeft'#8'Sho' +'ScrollDown'#8'ShortCut'#3'(@'#0#1#7'Command'#7#6'ecLeft'#8'ShortCut'#2'%'#0
+'rtCut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8'ShortCut'#3'%@'#0#1#7'Comman' +#1#7'Command'#7#9'ecSelLeft'#8'ShortCut'#3'% '#0#1#7'Command'#7#10'ecWordLef'
+'d'#7#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7'Command'#7#7'ecRight'#8'Shor' +'t'#8'ShortCut'#3'%@'#0#1#7'Command'#7#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0
+'tCut'#2''''#0#1#7'Command'#7#10'ecSelRight'#8'ShortCut'#3''' '#0#1#7'Comman' +#1#7'Command'#7#7'ecRight'#8'ShortCut'#2''''#0#1#7'Command'#7#10'ecSelRight'
+'d'#7#11'ecWordRight'#8'ShortCut'#3'''@'#0#1#7'Command'#7#14'ecSelWordRight' +#8'ShortCut'#3''' '#0#1#7'Command'#7#11'ecWordRight'#8'ShortCut'#3'''@'#0#1#7
+#8'ShortCut'#3'''`'#0#1#7'Command'#7#10'ecPageDown'#8'ShortCut'#2'"'#0#1#7'C' +'Command'#7#14'ecSelWordRight'#8'ShortCut'#3'''`'#0#1#7'Command'#7#10'ecPage'
+'ommand'#7#13'ecSelPageDown'#8'ShortCut'#3'" '#0#1#7'Command'#7#12'ecPageBot' +'Down'#8'ShortCut'#2'"'#0#1#7'Command'#7#13'ecSelPageDown'#8'ShortCut'#3'" '
+'tom'#8'ShortCut'#3'"@'#0#1#7'Command'#7#15'ecSelPageBottom'#8'ShortCut'#3'"' +#0#1#7'Command'#7#12'ecPageBottom'#8'ShortCut'#3'"@'#0#1#7'Command'#7#15'ecS'
+'`'#0#1#7'Command'#7#8'ecPageUp'#8'ShortCut'#2'!'#0#1#7'Command'#7#11'ecSelP' +'elPageBottom'#8'ShortCut'#3'"`'#0#1#7'Command'#7#8'ecPageUp'#8'ShortCut'#2
+'ageUp'#8'ShortCut'#3'! '#0#1#7'Command'#7#9'ecPageTop'#8'ShortCut'#3'!@'#0#1 +'!'#0#1#7'Command'#7#11'ecSelPageUp'#8'ShortCut'#3'! '#0#1#7'Command'#7#9'ec'
+#7'Command'#7#12'ecSelPageTop'#8'ShortCut'#3'!`'#0#1#7'Command'#7#11'ecLineS' +'PageTop'#8'ShortCut'#3'!@'#0#1#7'Command'#7#12'ecSelPageTop'#8'ShortCut'#3
+'tart'#8'ShortCut'#2'$'#0#1#7'Command'#7#14'ecSelLineStart'#8'ShortCut'#3'$ ' +'!`'#0#1#7'Command'#7#11'ecLineStart'#8'ShortCut'#2'$'#0#1#7'Command'#7#14'e'
+#0#1#7'Command'#7#11'ecEditorTop'#8'ShortCut'#3'$@'#0#1#7'Command'#7#14'ecSe' +'cSelLineStart'#8'ShortCut'#3'$ '#0#1#7'Command'#7#11'ecEditorTop'#8'ShortCu'
+'lEditorTop'#8'ShortCut'#3'$`'#0#1#7'Command'#7#9'ecLineEnd'#8'ShortCut'#2'#' +'t'#3'$@'#0#1#7'Command'#7#14'ecSelEditorTop'#8'ShortCut'#3'$`'#0#1#7'Comman'
+#0#1#7'Command'#7#12'ecSelLineEnd'#8'ShortCut'#3'# '#0#1#7'Command'#7#14'ecE' +'d'#7#9'ecLineEnd'#8'ShortCut'#2'#'#0#1#7'Command'#7#12'ecSelLineEnd'#8'Shor'
+'ditorBottom'#8'ShortCut'#3'#@'#0#1#7'Command'#7#17'ecSelEditorBottom'#8'Sho' +'tCut'#3'# '#0#1#7'Command'#7#14'ecEditorBottom'#8'ShortCut'#3'#@'#0#1#7'Com'
+'rtCut'#3'#`'#0#1#7'Command'#7#12'ecToggleMode'#8'ShortCut'#2'-'#0#1#7'Comma' +'mand'#7#17'ecSelEditorBottom'#8'ShortCut'#3'#`'#0#1#7'Command'#7#12'ecToggl'
+'nd'#7#6'ecCopy'#8'ShortCut'#3'-@'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3 +'eMode'#8'ShortCut'#2'-'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'-@'#0#1#7
+'- '#0#1#7'Command'#7#12'ecDeleteChar'#8'ShortCut'#2'.'#0#1#7'Command'#7#5'e' +'Command'#7#7'ecPaste'#8'ShortCut'#3'- '#0#1#7'Command'#7#12'ecDeleteChar'#8
+'cCut'#8'ShortCut'#3'. '#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#2 +'ShortCut'#2'.'#0#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'. '#0#1#7'Command'#7
+#8#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#3#8' '#0#1#7'Command'#7 +#16'ecDeleteLastChar'#8'ShortCut'#2#8#0#1#7'Command'#7#16'ecDeleteLastChar'#8
+#16'ecDeleteLastWord'#8'ShortCut'#3#8'@'#0#1#7'Command'#7#6'ecUndo'#8'ShortC' +'ShortCut'#3#8' '#0#1#7'Command'#7#16'ecDeleteLastWord'#8'ShortCut'#3#8'@'#0
+'ut'#4#8#128#0#0#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#4#8#160#0#0#0#1#7'Co' +#1#7'Command'#7#6'ecUndo'#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#7#6'ecRedo'
+'mmand'#7#11'ecLineBreak'#8'ShortCut'#2#13#0#1#7'Command'#7#11'ecSelectAll'#8 +#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#7#11'ecLineBreak'#8'ShortCut'#2#13#0
+'ShortCut'#3'A@'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'C@'#0#1#7'Command' +#1#7'Command'#7#11'ecSelectAll'#8'ShortCut'#3'A@'#0#1#7'Command'#7#6'ecCopy'
+#7#13'ecBlockIndent'#8'ShortCut'#3'I`'#0#1#7'Command'#7#11'ecLineBreak'#8'Sh' +#8'ShortCut'#3'C@'#0#1#7'Command'#7#13'ecBlockIndent'#8'ShortCut'#3'I`'#0#1#7
+'ortCut'#3'M@'#0#1#7'Command'#7#12'ecInsertLine'#8'ShortCut'#3'N@'#0#1#7'Com' +'Command'#7#11'ecLineBreak'#8'ShortCut'#3'M@'#0#1#7'Command'#7#12'ecInsertLi'
+'mand'#7#12'ecDeleteWord'#8'ShortCut'#3'T@'#0#1#7'Command'#7#15'ecBlockUnind' +'ne'#8'ShortCut'#3'N@'#0#1#7'Command'#7#12'ecDeleteWord'#8'ShortCut'#3'T@'#0
+'ent'#8'ShortCut'#3'U`'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3'V@'#0#1#7 +#1#7'Command'#7#15'ecBlockUnindent'#8'ShortCut'#3'U`'#0#1#7'Command'#7#7'ecP'
+'Command'#7#5'ecCut'#8'ShortCut'#3'X@'#0#1#7'Command'#7#12'ecDeleteLine'#8'S' +'aste'#8'ShortCut'#3'V@'#0#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'X@'#0#1#7'C'
+'hortCut'#3'Y@'#0#1#7'Command'#7#11'ecDeleteEOL'#8'ShortCut'#3'Y`'#0#1#7'Com' +'ommand'#7#12'ecDeleteLine'#8'ShortCut'#3'Y@'#0#1#7'Command'#7#11'ecDeleteEO'
+'mand'#7#6'ecUndo'#8'ShortCut'#3'Z@'#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#3 +'L'#8'ShortCut'#3'Y`'#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#3'Z@'#0#1#7'Com'
+'Z`'#0#1#7'Command'#7#13'ecGotoMarker0'#8'ShortCut'#3'0@'#0#1#7'Command'#7#13 +'mand'#7#6'ecRedo'#8'ShortCut'#3'Z`'#0#1#7'Command'#7#13'ecGotoMarker0'#8'Sh'
+'ecGotoMarker1'#8'ShortCut'#3'1@'#0#1#7'Command'#7#13'ecGotoMarker2'#8'Short' +'ortCut'#3'0@'#0#1#7'Command'#7#13'ecGotoMarker1'#8'ShortCut'#3'1@'#0#1#7'Co'
+'Cut'#3'2@'#0#1#7'Command'#7#13'ecGotoMarker3'#8'ShortCut'#3'3@'#0#1#7'Comma' +'mmand'#7#13'ecGotoMarker2'#8'ShortCut'#3'2@'#0#1#7'Command'#7#13'ecGotoMark'
+'nd'#7#13'ecGotoMarker4'#8'ShortCut'#3'4@'#0#1#7'Command'#7#13'ecGotoMarker5' +'er3'#8'ShortCut'#3'3@'#0#1#7'Command'#7#13'ecGotoMarker4'#8'ShortCut'#3'4@'
+#8'ShortCut'#3'5@'#0#1#7'Command'#7#13'ecGotoMarker6'#8'ShortCut'#3'6@'#0#1#7 +#0#1#7'Command'#7#13'ecGotoMarker5'#8'ShortCut'#3'5@'#0#1#7'Command'#7#13'ec'
+'Command'#7#13'ecGotoMarker7'#8'ShortCut'#3'7@'#0#1#7'Command'#7#13'ecGotoMa' +'GotoMarker6'#8'ShortCut'#3'6@'#0#1#7'Command'#7#13'ecGotoMarker7'#8'ShortCu'
+'rker8'#8'ShortCut'#3'8@'#0#1#7'Command'#7#13'ecGotoMarker9'#8'ShortCut'#3'9' +'t'#3'7@'#0#1#7'Command'#7#13'ecGotoMarker8'#8'ShortCut'#3'8@'#0#1#7'Command'
+'@'#0#1#7'Command'#7#12'ecSetMarker0'#8'ShortCut'#3'0`'#0#1#7'Command'#7#12 +#7#13'ecGotoMarker9'#8'ShortCut'#3'9@'#0#1#7'Command'#7#12'ecSetMarker0'#8'S'
+'ecSetMarker1'#8'ShortCut'#3'1`'#0#1#7'Command'#7#12'ecSetMarker2'#8'ShortCu' +'hortCut'#3'0`'#0#1#7'Command'#7#12'ecSetMarker1'#8'ShortCut'#3'1`'#0#1#7'Co'
+'t'#3'2`'#0#1#7'Command'#7#12'ecSetMarker3'#8'ShortCut'#3'3`'#0#1#7'Command' +'mmand'#7#12'ecSetMarker2'#8'ShortCut'#3'2`'#0#1#7'Command'#7#12'ecSetMarker'
+#7#12'ecSetMarker4'#8'ShortCut'#3'4`'#0#1#7'Command'#7#12'ecSetMarker5'#8'Sh' +'3'#8'ShortCut'#3'3`'#0#1#7'Command'#7#12'ecSetMarker4'#8'ShortCut'#3'4`'#0#1
+'ortCut'#3'5`'#0#1#7'Command'#7#12'ecSetMarker6'#8'ShortCut'#3'6`'#0#1#7'Com' +#7'Command'#7#12'ecSetMarker5'#8'ShortCut'#3'5`'#0#1#7'Command'#7#12'ecSetMa'
+'mand'#7#12'ecSetMarker7'#8'ShortCut'#3'7`'#0#1#7'Command'#7#12'ecSetMarker8' +'rker6'#8'ShortCut'#3'6`'#0#1#7'Command'#7#12'ecSetMarker7'#8'ShortCut'#3'7`'
,#8'ShortCut'#3'8`'#0#1#7'Command'#7#12'ecSetMarker9'#8'ShortCut'#3'9`'#0#1#7 ,#0#1#7'Command'#7#12'ecSetMarker8'#8'ShortCut'#3'8`'#0#1#7'Command'#7#12'ecS'
+'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'1'#160#0#0#0#1#7'Command'#7#12'Ec' +'etMarker9'#8'ShortCut'#3'9`'#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4
+'FoldLevel2'#8'ShortCut'#4'2'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'Sh' +'1'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel2'#8'ShortCut'#4'2'#160#0#0#0#1#7
+'ortCut'#4'3'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'4'#160 +'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'3'#160#0#0#0#1#7'Command'#7#12'Ec'
+#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'5'#160#0#0#0#1#7'Comman' +'FoldLevel1'#8'ShortCut'#4'4'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'Sh'
+'d'#7#12'EcFoldLevel6'#8'ShortCut'#4'6'#160#0#0#0#1#7'Command'#7#12'EcFoldLe' +'ortCut'#4'5'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel6'#8'ShortCut'#4'6'#160
+'vel7'#8'ShortCut'#4'7'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel8'#8'ShortCut' +#0#0#0#1#7'Command'#7#12'EcFoldLevel7'#8'ShortCut'#4'7'#160#0#0#0#1#7'Comman'
+#4'8'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel9'#8'ShortCut'#4'9'#160#0#0#0#1 +'d'#7#12'EcFoldLevel8'#8'ShortCut'#4'8'#160#0#0#0#1#7'Command'#7#12'EcFoldLe'
+#7'Command'#7#12'EcFoldLevel0'#8'ShortCut'#4'0'#160#0#0#0#1#7'Command'#7#13 +'vel9'#8'ShortCut'#4'9'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel0'#8'ShortCut'
+'EcFoldCurrent'#8'ShortCut'#4'-'#160#0#0#0#1#7'Command'#7#15'EcUnFoldCurrent' +#4'0'#160#0#0#0#1#7'Command'#7#13'EcFoldCurrent'#8'ShortCut'#4'-'#160#0#0#0#1
+#8'ShortCut'#4'+'#160#0#0#0#1#7'Command'#7#18'EcToggleMarkupWord'#8'ShortCut' +#7'Command'#7#15'EcUnFoldCurrent'#8'ShortCut'#4'+'#160#0#0#0#1#7'Command'#7
+#4'M'#128#0#0#0#1#7'Command'#7#14'ecNormalSelect'#8'ShortCut'#3'N`'#0#1#7'Co' +#18'EcToggleMarkupWord'#8'ShortCut'#4'M'#128#0#0#0#1#7'Command'#7#14'ecNorma'
+'mmand'#7#14'ecColumnSelect'#8'ShortCut'#3'C`'#0#1#7'Command'#7#12'ecLineSel' +'lSelect'#8'ShortCut'#3'N`'#0#1#7'Command'#7#14'ecColumnSelect'#8'ShortCut'#3
+'ect'#8'ShortCut'#3'L`'#0#1#7'Command'#7#5'ecTab'#8'ShortCut'#2#9#0#1#7'Comm' +'C`'#0#1#7'Command'#7#12'ecLineSelect'#8'ShortCut'#3'L`'#0#1#7'Command'#7#5
+'and'#7#10'ecShiftTab'#8'ShortCut'#3#9' '#0#1#7'Command'#7#14'ecMatchBracket' +'ecTab'#8'ShortCut'#2#9#0#1#7'Command'#7#10'ecShiftTab'#8'ShortCut'#3#9' '#0
+#8'ShortCut'#3'B`'#0#1#7'Command'#7#10'ecColSelUp'#8'ShortCut'#4'&'#160#0#0#0 +#1#7'Command'#7#14'ecMatchBracket'#8'ShortCut'#3'B`'#0#1#7'Command'#7#10'ecC'
+#1#7'Command'#7#12'ecColSelDown'#8'ShortCut'#4'('#160#0#0#0#1#7'Command'#7#12 +'olSelUp'#8'ShortCut'#4'&'#160#0#0#0#1#7'Command'#7#12'ecColSelDown'#8'Short'
+'ecColSelLeft'#8'ShortCut'#4'%'#160#0#0#0#1#7'Command'#7#13'ecColSelRight'#8 +'Cut'#4'('#160#0#0#0#1#7'Command'#7#12'ecColSelLeft'#8'ShortCut'#4'%'#160#0#0
+'ShortCut'#4''''#160#0#0#0#1#7'Command'#7#16'ecColSelPageDown'#8'ShortCut'#4 +#0#1#7'Command'#7#13'ecColSelRight'#8'ShortCut'#4''''#160#0#0#0#1#7'Command'
+'"'#160#0#0#0#1#7'Command'#7#18'ecColSelPageBottom'#8'ShortCut'#4'"'#224#0#0 +#7#16'ecColSelPageDown'#8'ShortCut'#4'"'#160#0#0#0#1#7'Command'#7#18'ecColSe'
+#0#1#7'Command'#7#14'ecColSelPageUp'#8'ShortCut'#4'!'#160#0#0#0#1#7'Command' +'lPageBottom'#8'ShortCut'#4'"'#224#0#0#0#1#7'Command'#7#14'ecColSelPageUp'#8
+#7#15'ecColSelPageTop'#8'ShortCut'#4'!'#224#0#0#0#1#7'Command'#7#17'ecColSel' +'ShortCut'#4'!'#160#0#0#0#1#7'Command'#7#15'ecColSelPageTop'#8'ShortCut'#4'!'
+'LineStart'#8'ShortCut'#4'$'#160#0#0#0#1#7'Command'#7#15'ecColSelLineEnd'#8 +#224#0#0#0#1#7'Command'#7#17'ecColSelLineStart'#8'ShortCut'#4'$'#160#0#0#0#1
+'ShortCut'#4'#'#160#0#0#0#1#7'Command'#7#17'ecColSelEditorTop'#8'ShortCut'#4 +#7'Command'#7#15'ecColSelLineEnd'#8'ShortCut'#4'#'#160#0#0#0#1#7'Command'#7
+'$'#224#0#0#0#1#7'Command'#7#20'ecColSelEditorBottom'#8'ShortCut'#4'#'#224#0 +#17'ecColSelEditorTop'#8'ShortCut'#4'$'#224#0#0#0#1#7'Command'#7#20'ecColSel'
+#0#0#0#12'MouseActions'#14#1#5'Shift'#11#0#9'ShiftMask'#11#7'ssShift'#5'ssAl' +'EditorBottom'#8'ShortCut'#4'#'#224#0#0#0#0#12'MouseActions'#14#1#5'Shift'#11
+'t'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdD' +#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'
+'own'#7'Command'#2#1#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shif' +#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#1#9'MoveCaret'#9#6'Optio'
+'t'#11#7'ssShift'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLe' +'n'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#7'ssShift'#0#9'ShiftMask'#11#7'ssShi'
+'ft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#1#9'M' +'ft'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDi'
+'oveCaret'#9#6'Option'#2#1#8'Priority'#2#0#0#1#5'Shift'#11#5'ssAlt'#0#9'Shif' +'r'#7#6'cdDown'#7'Command'#2#1#9'MoveCaret'#9#6'Option'#2#1#8'Priority'#2#0#0
+'tMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'cc' +#1#5'Shift'#11#5'ssAlt'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6
+'Single'#8'ClickDir'#7#6'cdDown'#7'Command'#2#3#9'MoveCaret'#9#6'Option'#2#0 +'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#3
+#8'Priority'#2#0#0#1#5'Shift'#11#7'ssShift'#5'ssAlt'#0#9'ShiftMask'#11#7'ssS' +#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#7'ssShift'#5's'
+'hift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'Click' +'sAlt'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'Clic'
+'Dir'#7#6'cdDown'#7'Command'#2#3#9'MoveCaret'#9#6'Option'#2#1#8'Priority'#2#0 +'kCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#3#9'MoveCaret'#9
+#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10'ClickCount'#7 +#6'Option'#2#1#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'
+#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#12#9'MoveCaret'#8#6'Option'#2 +#7#7'mbRight'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2
+#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft' +#12#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMa'
+#10'ClickCount'#7#8'ccDouble'#8'ClickDir'#7#6'cdDown'#7'Command'#2#6#9'MoveC' +'sk'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccDouble'#8'ClickDir'#7#6
+'aret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6 +'cdDown'#7'Command'#2#6#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'S'
+'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccTriple'#8'ClickDir'#7#6'cdDown'#7 +'hift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccTri'
+'Command'#2#7#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0 +'ple'#8'ClickDir'#7#6'cdDown'#7'Command'#2#7#9'MoveCaret'#9#6'Option'#2#0#8
+#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#6'ccQuad'#8'ClickD' +'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10
+'ir'#7#6'cdDown'#7'Command'#2#8#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0 +'ClickCount'#7#6'ccQuad'#8'ClickDir'#7#6'cdDown'#7'Command'#2#8#9'MoveCaret'
+#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#8'mbMiddle'#10'ClickCount'#7 +#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Butto'
+#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#10#9'MoveCaret'#9#6'Option' +'n'#7#8'mbMiddle'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Com'
+#2#0#8'Priority'#2#0#0#1#5'Shift'#11#6'ssMeta'#0#9'ShiftMask'#11#7'ssShift'#5 +'mand'#2#10#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#6's'
+'ssAlt'#6'ssCtrl'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'Cli' +'sMeta'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#6'ssCtrl'#0#6'Button'#7#6'mbLe'
+'ckDir'#7#4'cdUp'#7'Command'#2#11#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2 +'ft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#11#9'Mo'
+#0#0#0#15'MouseSelActions'#14#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6 +'veCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#0#15'MouseSelActions'#14#1#5'Shi'
+'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#9 +'ft'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingl'
+#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#0#13'Lines.Strings'#1#6#10'S' +'e'#8'ClickDir'#7#6'cdDown'#7'Command'#2#9#9'MoveCaret'#8#6'Option'#2#0#8'Pr'
+'rcSynEdit'#0#21'BracketHighlightStyle'#7#8'sbhsBoth'#0#18'TSynGutterPartLis' +'iority'#2#0#0#0#13'Lines.Strings'#1#6#10'SrcSynEdit'#0#21'BracketHighlightS'
+'t'#0#0#15'TSynGutterMarks'#0#5'Width'#2#23#0#0#20'TSynGutterLineNumber'#0#5 +'tyle'#7#8'sbhsBoth'#0#18'TSynGutterPartList'#0#0#15'TSynGutterMarks'#0#5'Wi'
+'Width'#2#15#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#9'clBtnFace' +'dth'#2#23#0#0#20'TSynGutterLineNumber'#0#5'Width'#2#21#12'MouseActions'#14#0
+#21'MarkupInfo.Foreground'#7#6'clNone'#10'DigitCount'#2#2#30'ShowOnlyLineNum' +#21'MarkupInfo.Background'#7#9'clBtnFace'#21'MarkupInfo.Foreground'#7#6'clNo'
+'bersMultiplesOf'#2#1#9'ZeroStart'#8#12'LeadingZeros'#8#0#0#17'TSynGutterCha' +'ne'#10'DigitCount'#2#2#30'ShowOnlyLineNumbersMultiplesOf'#2#1#9'ZeroStart'#8
+'nges'#0#5'Width'#2#4#13'ModifiedColor'#4#252#233#0#0#10'SavedColor'#7#7'clG' +#12'LeadingZeros'#8#0#0#17'TSynGutterChanges'#0#5'Width'#2#4#13'ModifiedColo'
+'reen'#0#0#19'TSynGutterSeparator'#0#5'Width'#2#2#0#0#21'TSynGutterCodeFoldi' +'r'#4#252#233#0#0#10'SavedColor'#7#7'clGreen'#0#0#19'TSynGutterSeparator'#0#5
+'ng'#0#12'MouseActions'#14#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'm' +'Width'#2#2#0#0#21'TSynGutterCodeFolding'#0#12'MouseActions'#14#1#5'Shift'#11
+'bRight'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#16#9 +#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10'ClickCount'#7#8'ccSingle'#8'C'
+'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11 +'lickDir'#7#4'cdUp'#7'Command'#2#16#9'MoveCaret'#8#6'Option'#2#0#8'Priority'
+#7'ssShift'#0#6'Button'#7#8'mbMiddle'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7 +#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#7'ssShift'#0#6'Button'#7#8'mbMiddle'
,#6'cdDown'#7'Command'#2#14#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5 ,#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#14#9'MoveCar'
+'Shift'#11#7'ssShift'#0#9'ShiftMask'#11#7'ssShift'#0#6'Button'#7#8'mbMiddle' +'et'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#7'ssShift'#0#9'ShiftMas'
+#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#14#9'MoveCar' +'k'#11#7'ssShift'#0#6'Button'#7#8'mbMiddle'#10'ClickCount'#7#5'ccAny'#8'Clic'
+'et'#8#6'Option'#2#1#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'B' +'kDir'#7#6'cdDown'#7'Command'#2#14#9'MoveCaret'#8#6'Option'#2#1#8'Priority'#2
+'utton'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Comm' +#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7
+'and'#2#0#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#0#21'MarkupInfo.Bac' +#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#0#9'MoveCaret'#8#6'Option'#2#0
+'kground'#7#6'clNone'#21'MarkupInfo.Foreground'#7#6'clGray'#20'MouseActionsE' +#8'Priority'#2#0#0#0#21'MarkupInfo.Background'#7#6'clNone'#21'MarkupInfo.For'
+'xpanded'#14#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'Clic' +'eground'#7#6'clGray'#20'MouseActionsExpanded'#14#1#5'Shift'#11#0#9'ShiftMas'
+'kCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#14#9'MoveCaret'#8#6 +'k'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdD'
+'Option'#2#0#8'Priority'#2#0#0#0#21'MouseActionsCollapsed'#14#1#5'Shift'#11#6 +'own'#7'Command'#2#14#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#0#21'Mo'
+'ssCtrl'#0#9'ShiftMask'#11#6'ssCtrl'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7 +'useActionsCollapsed'#14#1#5'Shift'#11#6'ssCtrl'#0#9'ShiftMask'#11#6'ssCtrl'
+#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#15#9'MoveCaret'#8#6'Option'#2 +#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7
+#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#6'ssCtrl'#0#6'Button'#7 +'Command'#2#15#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0
+#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#15 +#9'ShiftMask'#11#6'ssCtrl'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'
+#9'MoveCaret'#8#6'Option'#2#1#8'Priority'#2#0#0#0#0#0#0#0#8'TToolBar'#10'Src' +#8'ClickDir'#7#6'cdDown'#7'Command'#2#15#9'MoveCaret'#8#6'Option'#2#1#8'Prio'
+'ToolBar'#4'Left'#2#0#6'Height'#2#26#3'Top'#2#0#5'Width'#3#177#1#7'Caption'#6 +'rity'#2#0#0#0#0#0#0#0#8'TToolBar'#10'SrcToolBar'#4'Left'#2#0#6'Height'#2#26
+#10'SrcToolBar'#8'TabOrder'#2#1#0#11'TToolButton'#27'SrcLoadDefaultSrcToolBu' +#3'Top'#2#0#5'Width'#3#181#1#7'Caption'#6#10'SrcToolBar'#8'TabOrder'#2#1#0#11
+'tton'#4'Left'#2#1#3'Top'#2#2#8'AutoSize'#9#7'Caption'#6#19'Load default sou' +'TToolButton'#27'SrcLoadDefaultSrcToolButton'#4'Left'#2#1#3'Top'#2#2#8'AutoS'
+'rce'#7'OnClick'#7' SrcLoadDefaultSrcToolButtonClick'#0#0#11'TToolButton'#21 +'ize'#9#7'Caption'#6#19'Load default source'#7'OnClick'#7' SrcLoadDefaultSrc'
+'SrcLoadFileToolButton'#4'Left'#2#24#3'Top'#2#2#7'Caption'#6#21'SrcLoadFileT' +'ToolButtonClick'#0#0#11'TToolButton'#21'SrcLoadFileToolButton'#4'Left'#2#24
+'oolButton'#7'OnClick'#7#26'SrcLoadFileToolButtonClick'#0#0#0#0#242#2#1#6'TP' +#3'Top'#2#2#7'Caption'#6#21'SrcLoadFileToolButton'#7'OnClick'#7#26'SrcLoadFi'
+'anel'#9'OptsPanel'#4'Left'#2#0#6'Height'#2'2'#3'Top'#2#0#5'Width'#3#197#1#5 +'leToolButtonClick'#0#0#0#0#242#2#1#6'TPanel'#9'OptsPanel'#4'Left'#2#0#6'Hei'
+'Align'#7#5'alTop'#8'AutoSize'#9#18'ChildSizing.Layout'#7#29'cclTopToBottomT' +'ght'#2'.'#3'Top'#2#0#5'Width'#3#197#1#5'Align'#7#5'alTop'#8'AutoSize'#9#18
+'henLeftToRight'#27'ChildSizing.ControlsPerLine'#2#2#12'ClientHeight'#2'2'#11 +'ChildSizing.Layout'#7#29'cclTopToBottomThenLeftToRight'#27'ChildSizing.Cont'
+'ClientWidth'#3#197#1#8'TabOrder'#2#1#0#9'TCheckBox'#19'AddToNewDlgCheckBox' +'rolsPerLine'#2#2#12'ClientHeight'#2'.'#11'ClientWidth'#3#197#1#8'TabOrder'#2
+#4'Left'#2#6#6'Height'#2#18#3'Top'#2#6#5'Width'#3#176#0#20'BorderSpacing.Aro' +#1#0#9'TCheckBox'#19'AddToNewDlgCheckBox'#4'Left'#2#6#6'Height'#2#17#3'Top'#2
+'und'#2#6#7'Caption'#6#19'AddToNewDlgCheckBox'#8'TabOrder'#2#0#0#0#9'TCheckB' +#6#5'Width'#3#139#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#19'AddToNewDlg'
+'ox'#20'AddNewPrgBtnCheckBox'#4'Left'#2#6#6'Height'#2#18#3'Top'#2#30#5'Width' +'CheckBox'#8'TabOrder'#2#0#0#0#9'TCheckBox'#20'AddNewPrgBtnCheckBox'#4'Left'
+#3#176#0#7'Caption'#6#20'AddNewPrgBtnCheckBox'#8'TabOrder'#2#1#0#0#9'TCheckB' +#2#6#6'Height'#2#17#3'Top'#2#29#5'Width'#3#139#0#7'Caption'#6#20'AddNewPrgBt'
+'ox'#24'AddNewPrgMenuItmCheckBox'#4'Left'#3#188#0#6'Height'#2#18#3'Top'#2#6#5 +'nCheckBox'#8'TabOrder'#2#1#0#0#9'TCheckBox'#24'AddNewPrgMenuItmCheckBox'#4
+'Width'#3#211#0#7'Caption'#6#24'AddNewPrgMenuItmCheckBox'#8'TabOrder'#2#2#0#0 +'Left'#3#151#0#6'Height'#2#17#3'Top'#2#6#5'Width'#3#165#0#7'Caption'#6#24'Ad'
+#0#242#2#2#17'TSynFreePascalSyn'#19'SrcSynFreePascalSyn'#7'Enabled'#8#12'Com' +'dNewPrgMenuItmCheckBox'#8'TabOrder'#2#2#0#0#0#242#2#2#17'TSynFreePascalSyn'
+'pilerMode'#7#9'pcmObjFPC'#14'NestedComments'#9#4'left'#3#131#0#3'top'#3#149 +#19'SrcSynFreePascalSyn'#7'Enabled'#8#12'CompilerMode'#7#9'pcmObjFPC'#14'Nes'
+#0#0#0#0 +'tedComments'#9#4'left'#3#131#0#3'top'#3#149#0#0#0#0
]); ]);

View File

@ -277,7 +277,7 @@ end;
function TEduNewPrgFrame.GetTitle: String; function TEduNewPrgFrame.GetTitle: String;
begin begin
Result:='New program'; Result:=ersEduNewProgramTitle;
end; end;
procedure TEduNewPrgFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TEduNewPrgFrame.ReadSettings(AOptions: TAbstractIDEOptions);

View File

@ -59,6 +59,37 @@ resourcestring
+'default source code'; +'default source code';
ersLoadSourceFromFile = 'Load source from file'; ersLoadSourceFromFile = 'Load source from file';
ersGrpBoxPropsMin = 'Properties: Minimal Configuration';
ersGrpBoxPropsExt = 'Properties: Extended Configuration';
ersGrpBoxPropsFull = 'Properties: Full Configuration';
ersGrpBoxEventsMin = 'Events: Minimal Configuration';
ersGrpBoxEventsExt = 'Events: Extended Configuration';
ersGrpBoxEventsFull = 'Events: Full Configuration';
ersStTextPropsMin = 'Name, Caption, Visible, Text, Checked, Items, Font, Color, Enabled, Height, Width, MaxLength, Picture, Columns';
ersStTextPropsExt ='Align, Left, Top, Hint, ShowHint, ParentFont, TabOrder, ParentShowHint, WordWrap, FixedCols, FixedRows, DefaultColWidth, DefaultRowHeight, ColCount, RowCount, Borderstyle, Glyph, State, Interval, DataSource, DataField, InitialDir';
ersStTextPropsFull = 'All Properties available';
ersStTextEventsMin = 'OnClick, OnChange, OnMouseMove';
ersStTextEventsExt = 'OnClick, OnChange, OnMouseMove, OnDblClick, OnCreate, OnKeyPress, OnFormCreate';
ersStTextEventsFull = 'All Events available';
ersRdGrpPropsCaption = 'Properties';
ersRdGrpEventsCaption = 'Events';
ersEduEnvOptsFrameTitle = 'General';
ersEduPropsEventsTitle = 'Properties & Events';
ersEduCompPaletteTitle = 'Component palette';
ersEduNewProgramTitle = 'New program';
ersEduMenuTitle = 'Menus';
ersRdBtnFull = 'Show All';
ersEnableEduCheckBoxCaption = 'Enable education settings';
const const
DefaultEduOptionsFilename = 'education.xml'; DefaultEduOptionsFilename = 'education.xml';
@ -67,6 +98,7 @@ const
EduOptionCompPaletteID = 200; EduOptionCompPaletteID = 200;
EduOptionMenuID = 300; EduOptionMenuID = 300;
EduOptionNewPrgID = 400; EduOptionNewPrgID = 400;
EduPropsEventsOptionsID = 500;
type type
@ -116,7 +148,7 @@ type
property ChangeStep: integer read FChangeStep write SetChangeStep; property ChangeStep: integer read FChangeStep write SetChangeStep;
end; end;
TEduOptions = class(TAbstractIDEEnvironmentOptions) TEduOptions = class(TAbstractIDEOptions)
private private
FEnabled: boolean; FEnabled: boolean;
FFilename: string; FFilename: string;
@ -129,7 +161,6 @@ type
constructor Create; constructor Create;
destructor Destroy; override; destructor Destroy; override;
class function GetGroupCaption: string; override; class function GetGroupCaption: string; override;
class function GetInstance: TAbstractIDEOptions;
property Root: TEduOptionsNode read FRoot; property Root: TEduOptionsNode read FRoot;
function Load(Config: TConfigStorage): TModalResult; virtual; function Load(Config: TConfigStorage): TModalResult; virtual;
function Save(Config: TConfigStorage): TModalResult; virtual; function Save(Config: TConfigStorage): TModalResult; virtual;
@ -322,12 +353,6 @@ begin
Result:=EduRSEducation; Result:=EduRSEducation;
end; end;
class function TEduOptions.GetInstance: TAbstractIDEOptions;
begin
Result := EducationOptions;
end;
function TEduOptions.Load(Config: TConfigStorage): TModalResult; function TEduOptions.Load(Config: TConfigStorage): TModalResult;
begin begin
FEnabled:=Config.GetValue('Enabled',false); FEnabled:=Config.GetValue('Enabled',false);

View File

@ -0,0 +1,168 @@
inherited EduPropsEventsFrame: TEduPropsEventsFrame
Height = 393
Width = 456
ClientHeight = 393
ClientWidth = 456
TabOrder = 0
DesignLeft = 713
DesignTop = 9
object OptsPanel: TPanel[0]
Left = 8
Height = 128
Top = 0
Width = 440
Align = alCustom
ChildSizing.Layout = cclTopToBottomThenLeftToRight
ChildSizing.ControlsPerLine = 2
ClientHeight = 128
ClientWidth = 440
TabOrder = 0
object rdGrpProps: TRadioGroup
Left = 24
Height = 105
Top = 8
Width = 185
Align = alCustom
AutoFill = True
Caption = 'rdGrpProps'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 87
ClientWidth = 181
OnClick = rdGrpPropsClick
TabOrder = 0
object PropsMinRadioBtn: TRadioButton
Left = 14
Height = 17
Top = 8
Width = 165
Align = alCustom
Caption = 'PropsMinRadioBtn'
OnClick = PropsMinRadioBtnClick
TabOrder = 0
TabStop = False
end
object PropsExtRadioBtn: TRadioButton
Left = 14
Height = 17
Top = 32
Width = 165
Align = alCustom
Caption = 'PropsExtRadioBtn'
OnClick = PropsExtRadioBtnClick
TabOrder = 1
TabStop = False
end
object PropsFullRadioBtn: TRadioButton
Left = 14
Height = 17
Top = 56
Width = 166
Align = alCustom
Caption = 'PropsFullRadioBtn'
OnClick = PropsFullRadioBtnClick
TabOrder = 2
end
end
object rdGrpEvents: TRadioGroup
Left = 224
Height = 105
Top = 8
Width = 185
Align = alCustom
AutoFill = True
Caption = 'rdGrpEvents'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 87
ClientWidth = 181
TabOrder = 1
object EventsMinRadioBtn: TRadioButton
Left = 14
Height = 17
Top = 8
Width = 160
Align = alCustom
Caption = 'EventsMinRadioBtn'
OnClick = EventsMinRadioBtnClick
TabOrder = 0
end
object EventsExtRadioBtn: TRadioButton
Left = 14
Height = 17
Top = 32
Width = 160
Align = alCustom
Caption = 'EventsExtRadioBtn'
OnClick = EventsExtRadioBtnClick
TabOrder = 1
end
object EventsFullRadioBtn: TRadioButton
Left = 14
Height = 17
Top = 56
Width = 161
Align = alCustom
Caption = 'EventsFullRadioBtn'
OnClick = EventsFullRadioBtnClick
TabOrder = 2
end
end
end
object grpBoxEvents: TGroupBox[1]
Left = 32
Height = 65
Top = 288
Width = 392
Caption = 'grpBoxEvents'
ClientHeight = 47
ClientWidth = 388
TabOrder = 1
object stTextEvents: TStaticText
Left = 14
Height = 25
Top = 8
Width = 369
Caption = 'stTextEvents'
TabOrder = 0
end
end
object grpBoxProps: TGroupBox[2]
Left = 32
Height = 128
Top = 144
Width = 392
Caption = 'grpBoxProps'
ClientHeight = 110
ClientWidth = 388
TabOrder = 2
object stTextProps: TStaticText
Left = 14
Height = 25
Top = 8
Width = 368
Caption = 'stTextProps'
TabOrder = 0
end
object stTextProps2: TStaticText
Left = 14
Height = 64
Top = 40
Width = 368
Caption = 'stTextProps2'
TabOrder = 1
end
end
end

View File

@ -0,0 +1,308 @@
{
*****************************************************************************
* *
* This file is part of the EducationLaz package *
* *
* See the file COPYING.modifiedLGPL.txt, 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. *
* *
*****************************************************************************
Author: Michael Kuhardt
Abstract:
Frame to setup Properties and events
}
unit EduPropsEvents;
{$mode objfpc}{$H+}
interface
uses
Classes, LResources, Forms, StdCtrls, ExtCtrls, LazConfigStorage, IDEOptionsIntf, EduOptions,
ObjectInspector;
type
{ TEduPropsEventsOptions }
TEduPropsEventsOptions = class(TEduOptionsNode)
private
FPropsMinimal: boolean;
FPropsExt: boolean;
FPropsFull: boolean;
FEventsMinimal: boolean;
FEventsExt: boolean;
FEventsFull: boolean;
public
constructor Create; override;
destructor Destroy; override;
function Load(Config: TConfigStorage): TModalResult; override;
function Save(Config: TConfigStorage): TModalResult; override;
procedure Apply(Enable: boolean); override;
property PropsMinimal: boolean read FPropsMinimal write FPropsMinimal;
property PropsExt: boolean read FPropsExt write FPropsExt;
property PropsFull: boolean read FPropsFull write FPropsFull;
property EventsMinimal: boolean read FEventsMinimal write FEventsMinimal;
property EventsExt: boolean read FEventsExt write FEventsExt;
property EventsFull: boolean read FEventsFull write FEventsFull;
end;
{ TEduPropsEventsFrame }
TEduPropsEventsFrame = class(TAbstractIDEOptionsEditor)
grpBoxEvents: TGroupBox;
grpBoxProps: TGroupBox;
OptsPanel: TPanel;
PropsMinRadioBtn: TRadioButton;
PropsExtRadioBtn: TRadioButton;
rdGrpProps: TRadioGroup;
PropsFullRadioBtn: TRadioButton;
EventsMinRadioBtn: TRadioButton;
EventsExtRadioBtn: TRadioButton;
EventsFullRadioBtn: TRadioButton;
rdGrpEvents: TRadioGroup;
stTextEvents: TStaticText;
stTextProps2: TStaticText;
stTextProps: TStaticText;
procedure EventsExtRadioBtnClick(Sender: TObject);
procedure EventsFullRadioBtnClick(Sender: TObject);
procedure EventsMinRadioBtnClick(Sender: TObject);
procedure PropsExtRadioBtnClick(Sender: TObject);
procedure PropsFullRadioBtnClick(Sender: TObject);
procedure PropsMinRadioBtnClick(Sender: TObject);
procedure rdGrpPropsClick(Sender: TObject);
private
public
function GetTitle: String; override;
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
procedure Setup(ADialog: TAbstractOptionsEditorDialog); override;
class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
end;
var
EduPropsEventsOptions: TEduPropsEventsOptions = nil;
procedure Register;
implementation
procedure Register;
begin
EduPropsEventsOptions:=TEduPropsEventsOptions.Create;
EducationOptions.Root.Add(EduPropsEventsOptions);
RegisterIDEOptionsEditor(EduOptionID,TEduPropsEventsFrame,EduPropsEventsOptionsID);
end;
{ TEduPropsEventsOptions }
constructor TEduPropsEventsOptions.Create;
begin
inherited Create;
Name:='PropsEvents';
PropsMinimal:=true;
PropsExt:=false;
PropsFull:=false;
EventsMinimal:=true;
EventsExt:=false;
EventsFull:=false;
end;
destructor TEduPropsEventsOptions.Destroy;
begin
inherited Destroy;
end;
function TEduPropsEventsOptions.Load(Config: TConfigStorage): TModalResult;
begin
FPropsMinimal:=Config.GetValue('PropsMinimal',true);
FPropsExt:=Config.GetValue('PropsExt',true);
FPropsFull:=Config.GetValue('PropsFull',true);
FEventsMinimal:=Config.GetValue('EventsMinimal',true);
FEventsExt:=Config.GetValue('EventsExt',true);
FEventsFull:=Config.GetValue('EventsFull',true);
Result:=inherited Load(Config);
end;
function TEduPropsEventsOptions.Save(Config: TConfigStorage): TModalResult;
begin
Config.SetValue('PropsMinimal',FPropsMinimal);
Config.SetValue('PropsExt',FPropsExt);
Config.SetValue('PropsFull',FPropsFull);
Config.SetValue('EventsMinimal',FEventsMinimal);
Config.SetValue('EventsExt',FEventsExt);
Config.SetValue('EventsFull',FEventsFull);
Result:=inherited Save(Config);
end;
procedure TEduPropsEventsOptions.Apply(Enable: boolean);
begin
inherited Apply(Enable);
end;
{ TEduPropsEventsFrame }
procedure TEduPropsEventsFrame.PropsMinRadioBtnClick(Sender: TObject);
begin
grpBoxProps.Caption:=ersGrpBoxPropsMin;
stTextProps.Caption:=ersStTextPropsMin;
stTextProps2.Visible:=false;
end;
procedure TEduPropsEventsFrame.rdGrpPropsClick(Sender: TObject);
begin
end;
procedure TEduPropsEventsFrame.PropsExtRadioBtnClick(Sender: TObject);
begin
grpBoxProps.Caption:=ersGrpBoxPropsExt;
stTextProps.Caption:=ersStTextPropsMin;
stTextProps2.Visible:=true;
end;
procedure TEduPropsEventsFrame.EventsMinRadioBtnClick(Sender: TObject);
begin
grpBoxEvents.Caption:=ersGrpBoxEventsMin;
stTextEvents.Caption:=ersStTextEventsMin;
end;
procedure TEduPropsEventsFrame.EventsExtRadioBtnClick(Sender: TObject);
begin
grpBoxEvents.Caption:=ersGrpBoxEventsExt;
stTextEvents.Caption:=ersStTextEventsExt;
end;
procedure TEduPropsEventsFrame.EventsFullRadioBtnClick(Sender: TObject);
begin
grpBoxEvents.Caption:=ersGrpBoxEventsFull;
stTextEvents.Caption:=ersStTextEventsFull;
end;
procedure TEduPropsEventsFrame.PropsFullRadioBtnClick(Sender: TObject);
begin
grpBoxProps.Caption:=ersGrpBoxPropsFull;
stTextProps.Caption:=ersStTextPropsFull;
stTextProps2.Visible:=false;
end;
function TEduPropsEventsFrame.GetTitle: String;
begin
Result:=ersEduPropsEventsTitle;
end;
procedure TEduPropsEventsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
begin
PropsMinRadioBtn.Checked:=EduPropsEventsOptions.PropsMinimal;
PropsExtRadioBtn.Checked:=EduPropsEventsOptions.PropsExt;
PropsFullRadioBtn.Checked:=EduPropsEventsOptions.PropsFull;
EventsMinRadioBtn.Checked:=EduPropsEventsOptions.EventsMinimal;
EventsExtRadioBtn.Checked:=EduPropsEventsOptions.EventsExt;
EventsFullRadioBtn.Checked:=EduPropsEventsOptions.EventsFull;
end;
procedure TEduPropsEventsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
begin
rdGrpProps.Caption:= ersRdGrpPropsCaption;
rdGrpEvents.Caption:= ersRdGrpEventsCaption;
PropsMinRadioBtn.Caption:= ersShowMinimal;
PropsExtRadioBtn.Caption:= ersShowExtended;
PropsFullRadioBtn.Caption:= ersRdBtnFull;
EventsMinRadioBtn.Caption:= ersShowMinimal;
EventsExtRadioBtn.Caption:= ersShowExtended;
EventsFullRadioBtn.Caption:= ersRdBtnFull;
stTextProps2.Caption:=ersStTextPropsExt;
stTextProps2.Visible:=false;
if (EduPropsEventsOptions.PropsMinimal)
then begin
grpBoxProps.Caption:=ersGrpBoxPropsMin;
stTextProps.Caption:=ersStTextPropsMin
end else if (EduPropsEventsOptions.PropsExt)
then begin
grpBoxProps.Caption:=ersGrpBoxPropsExt;
stTextProps.Caption:=ersStTextPropsMin;
stTextProps2.Visible:=true
end
else begin
grpBoxProps.Caption:=ersGrpBoxPropsFull;
stTextProps.Caption:=ersStTextPropsFull
end;
if (EduPropsEventsOptions.EventsMinimal)
then begin
grpBoxEvents.Caption:=ersGrpBoxEventsMin;
stTextEvents.Caption:=ersStTextEventsMin
end
else if (EduPropsEventsOptions.EventsExt)
then begin
grpBoxEvents.Caption:=ersGrpBoxEventsExt;
stTextEvents.Caption:=ersStTextEventsExt;
end
else begin
grpBoxEvents.Caption:=ersGrpBoxEventsFull;
stTextEvents.Caption:=ersStTextEventsFull;
end;
end;
class function TEduPropsEventsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin
Result:=TEduOptions;
end;
procedure TEduPropsEventsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
begin
EduPropsEventsOptions.PropsMinimal:=PropsMinRadioBtn.Checked;
EduPropsEventsOptions.PropsExt:=PropsExtRadioBtn.Checked;
EduPropsEventsOptions.PropsFull:=PropsFullRadioBtn.Checked;
EduPropsEventsOptions.EventsMinimal:=EventsMinRadioBtn.Checked;
EduPropsEventsOptions.EventsExt:=EventsExtRadioBtn.Checked;
EduPropsEventsOptions.EventsFull:=EventsFullRadioBtn.Checked;
end;
initialization
{$I edupropsevents.lrs}
end.