* Allow code preview, set unit name based on filename

git-svn-id: trunk@63152 -
This commit is contained in:
michael 2020-05-14 11:44:03 +00:00
parent e1c01042db
commit 2bb9bcd7ac
2 changed files with 628 additions and 44 deletions

View File

@ -2,23 +2,23 @@ object BaseConfigGeneratorForm: TBaseConfigGeneratorForm
Left = 338 Left = 338
Height = 378 Height = 378
Top = 207 Top = 207
Width = 462 Width = 549
ActiveControl = FEFile ActiveControl = FEFile
Caption = 'Configure generated code' Caption = 'Configure generated code'
ClientHeight = 378 ClientHeight = 378
ClientWidth = 462 ClientWidth = 549
OnCreate = FormCreate OnCreate = FormCreate
OnDestroy = FormDestroy OnDestroy = FormDestroy
LCLVersion = '0.9.27' LCLVersion = '2.1.0.0'
object PGenerator: TPanel object PGenerator: TPanel
Left = 0 Left = 0
Height = 56 Height = 40
Top = 0 Top = 0
Width = 462 Width = 549
Align = alTop Align = alTop
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 56 ClientHeight = 40
ClientWidth = 462 ClientWidth = 549
TabOrder = 0 TabOrder = 0
object LSave: TLabel object LSave: TLabel
Left = 8 Left = 8
@ -34,48 +34,51 @@ object BaseConfigGeneratorForm: TBaseConfigGeneratorForm
end end
object FEFile: TFileNameEdit object FEFile: TFileNameEdit
Left = 72 Left = 72
Height = 27 Height = 29
Top = 5 Top = 5
Width = 350 Width = 304
DialogOptions = [] DialogOptions = []
FilterIndex = 0 FilterIndex = 0
HideDirectories = False HideDirectories = False
ButtonWidth = 23 ButtonWidth = 23
NumGlyphs = 1 NumGlyphs = 1
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
MaxLength = 0
TabOrder = 0 TabOrder = 0
OnEditingDone = FEFileEditingDone
end end
object CBShowDialog: TCheckBox object CBShowDialog: TCheckBox
Left = 72 Left = 384
Height = 21 Height = 23
Top = 33 Top = 8
Width = 156 Width = 147
Caption = 'Sho&w generated code' Caption = 'Sho&w generated code'
TabOrder = 1 TabOrder = 1
end end
end end
object PCConf: TPageControl object PCConf: TPageControl
Left = 0 Left = 0
Height = 275 Height = 287
Top = 56 Top = 40
Width = 462 Width = 549
ActivePage = TSFields ActivePage = TSFields
Align = alClient Align = alClient
TabIndex = 0 TabIndex = 0
TabOrder = 1 TabOrder = 1
OnChange = PCConfChange
object TSFields: TTabSheet object TSFields: TTabSheet
Caption = 'Fields' Caption = 'Fields'
ClientHeight = 245 ClientHeight = 256
ClientWidth = 454 ClientWidth = 539
object Panel2: TPanel object Panel2: TPanel
Left = 0 Left = 0
Height = 28 Height = 28
Top = 0 Top = 0
Width = 454 Width = 539
Align = alTop Align = alTop
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 28 ClientHeight = 28
ClientWidth = 454 ClientWidth = 539
TabOrder = 0 TabOrder = 0
object LFields: TLabel object LFields: TLabel
Left = 0 Left = 0
@ -93,7 +96,7 @@ object BaseConfigGeneratorForm: TBaseConfigGeneratorForm
Left = 170 Left = 170
Height = 28 Height = 28
Top = 0 Top = 0
Width = 284 Width = 369
Align = alClient Align = alClient
Alignment = taCenter Alignment = taCenter
AutoSize = False AutoSize = False
@ -104,17 +107,17 @@ object BaseConfigGeneratorForm: TBaseConfigGeneratorForm
end end
object PFieldList: TPanel object PFieldList: TPanel
Left = 0 Left = 0
Height = 217 Height = 228
Top = 28 Top = 28
Width = 170 Width = 170
Align = alLeft Align = alLeft
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 217 ClientHeight = 228
ClientWidth = 170 ClientWidth = 170
TabOrder = 1 TabOrder = 1
object CLBFields: TCheckListBox object CLBFields: TCheckListBox
Left = 35 Left = 35
Height = 217 Height = 228
Top = 0 Top = 0
Width = 135 Width = 135
Align = alClient Align = alClient
@ -123,15 +126,16 @@ object BaseConfigGeneratorForm: TBaseConfigGeneratorForm
OnItemClick = CLBFieldsItemClick OnItemClick = CLBFieldsItemClick
OnKeyUp = CLBFieldsKeyUp OnKeyUp = CLBFieldsKeyUp
TabOrder = 0 TabOrder = 0
TopIndex = -1
end end
object PButtons: TPanel object PButtons: TPanel
Left = 0 Left = 0
Height = 217 Height = 228
Top = 0 Top = 0
Width = 35 Width = 35
Align = alLeft Align = alLeft
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 217 ClientHeight = 228
ClientWidth = 35 ClientWidth = 35
TabOrder = 1 TabOrder = 1
object SBup: TSpeedButton object SBup: TSpeedButton
@ -139,7 +143,6 @@ object BaseConfigGeneratorForm: TBaseConfigGeneratorForm
Height = 27 Height = 27
Top = 12 Top = 12
Width = 27 Width = 27
Color = clBtnFace
Flat = True Flat = True
Glyph.Data = { Glyph.Data = {
FA090000424DFA09000000000000360000002800000019000000190000000100 FA090000424DFA09000000000000360000002800000019000000190000000100
@ -223,14 +226,12 @@ object BaseConfigGeneratorForm: TBaseConfigGeneratorForm
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5E5E5FFE3E3E3FF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5E5E5FFE3E3E3FF
} }
NumGlyphs = 0
end end
object SBDown: TSpeedButton object SBDown: TSpeedButton
Left = 4 Left = 4
Height = 27 Height = 27
Top = 39 Top = 39
Width = 27 Width = 27
Color = clBtnFace
Flat = True Flat = True
Glyph.Data = { Glyph.Data = {
FA090000424DFA09000000000000360000002800000019000000190000000100 FA090000424DFA09000000000000360000002800000019000000190000000100
@ -314,54 +315,574 @@ object BaseConfigGeneratorForm: TBaseConfigGeneratorForm
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5E5E5FFE3E3E3FF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5E5E5FFE3E3E3FF
} }
NumGlyphs = 0
end end
end end
end end
object Splitter1: TSplitter object Splitter1: TSplitter
Left = 170 Left = 170
Height = 217 Height = 228
Top = 28 Top = 28
Width = 5 Width = 5
OnMoved = Splitter1Moved OnMoved = Splitter1Moved
end end
object GFieldProps: TTIPropertyGrid object GFieldProps: TTIPropertyGrid
Left = 175 Left = 175
Height = 217 Height = 228
Top = 28 Top = 28
Width = 279 Width = 364
Align = alClient Align = alClient
CheckboxForBoolean = False
DefaultValueFont.Color = clWindowText
Filter = [tkInteger, tkChar, tkEnumeration, tkFloat, tkSet, tkMethod, tkSString, tkLString, tkAString, tkWString, tkVariant, tkArray, tkRecord, tkInterface, tkClass, tkObject, tkWChar, tkBool, tkInt64, tkQWord, tkDynArray, tkInterfaceRaw, tkProcVar, tkUString, tkUChar] Filter = [tkInteger, tkChar, tkEnumeration, tkFloat, tkSet, tkMethod, tkSString, tkLString, tkAString, tkWString, tkVariant, tkArray, tkRecord, tkInterface, tkClass, tkObject, tkWChar, tkBool, tkInt64, tkQWord, tkDynArray, tkInterfaceRaw, tkProcVar, tkUString, tkUChar]
Indent = 11
NameFont.Color = clWindowText
ValueFont.Color = clMaroon ValueFont.Color = clMaroon
end end
end end
object TSOptions: TTabSheet object TSOptions: TTabSheet
Caption = 'Options' Caption = 'Options'
ClientHeight = 245 ClientHeight = 256
ClientWidth = 454 ClientWidth = 539
object GCodeOptions: TTIPropertyGrid object GCodeOptions: TTIPropertyGrid
Left = 0 Left = 0
Height = 245 Height = 240
Top = 0 Top = 0
Width = 454 Width = 452
Align = alClient Align = alClient
CheckboxForBoolean = False
DefaultValueFont.Color = clWindowText
Filter = [tkInteger, tkChar, tkEnumeration, tkFloat, tkSet, tkMethod, tkSString, tkLString, tkAString, tkWString, tkVariant, tkArray, tkRecord, tkInterface, tkClass, tkObject, tkWChar, tkBool, tkInt64, tkQWord, tkDynArray, tkInterfaceRaw, tkProcVar, tkUString, tkUChar] Filter = [tkInteger, tkChar, tkEnumeration, tkFloat, tkSet, tkMethod, tkSString, tkLString, tkAString, tkWString, tkVariant, tkArray, tkRecord, tkInterface, tkClass, tkObject, tkWChar, tkBool, tkInt64, tkQWord, tkDynArray, tkInterfaceRaw, tkProcVar, tkUString, tkUChar]
Indent = 11
NameFont.Color = clWindowText
PreferredSplitterX = 200 PreferredSplitterX = 200
SplitterX = 200 SplitterX = 200
ValueFont.Color = clMaroon ValueFont.Color = clMaroon
end end
end end
object TSPreview: TTabSheet
Caption = 'Preview'
ClientHeight = 256
ClientWidth = 539
inline sePreview: TSynEdit
Left = 0
Height = 256
Top = 0
Width = 539
Align = alClient
Font.Height = 13
Font.Name = 'DejaVu Sans Mono'
Font.Pitch = fpFixed
Font.Quality = fqNonAntialiased
ParentColor = False
ParentFont = False
TabOrder = 0
Gutter.Width = 57
Gutter.MouseActions = <>
RightGutter.Width = 0
RightGutter.MouseActions = <>
Highlighter = SHPreview
Keystrokes = <
item
Command = ecUp
ShortCut = 38
end
item
Command = ecSelUp
ShortCut = 8230
end
item
Command = ecScrollUp
ShortCut = 16422
end
item
Command = ecDown
ShortCut = 40
end
item
Command = ecSelDown
ShortCut = 8232
end
item
Command = ecScrollDown
ShortCut = 16424
end
item
Command = ecLeft
ShortCut = 37
end
item
Command = ecSelLeft
ShortCut = 8229
end
item
Command = ecWordLeft
ShortCut = 16421
end
item
Command = ecSelWordLeft
ShortCut = 24613
end
item
Command = ecRight
ShortCut = 39
end
item
Command = ecSelRight
ShortCut = 8231
end
item
Command = ecWordRight
ShortCut = 16423
end
item
Command = ecSelWordRight
ShortCut = 24615
end
item
Command = ecPageDown
ShortCut = 34
end
item
Command = ecSelPageDown
ShortCut = 8226
end
item
Command = ecPageBottom
ShortCut = 16418
end
item
Command = ecSelPageBottom
ShortCut = 24610
end
item
Command = ecPageUp
ShortCut = 33
end
item
Command = ecSelPageUp
ShortCut = 8225
end
item
Command = ecPageTop
ShortCut = 16417
end
item
Command = ecSelPageTop
ShortCut = 24609
end
item
Command = ecLineStart
ShortCut = 36
end
item
Command = ecSelLineStart
ShortCut = 8228
end
item
Command = ecEditorTop
ShortCut = 16420
end
item
Command = ecSelEditorTop
ShortCut = 24612
end
item
Command = ecLineEnd
ShortCut = 35
end
item
Command = ecSelLineEnd
ShortCut = 8227
end
item
Command = ecEditorBottom
ShortCut = 16419
end
item
Command = ecSelEditorBottom
ShortCut = 24611
end
item
Command = ecToggleMode
ShortCut = 45
end
item
Command = ecCopy
ShortCut = 16429
end
item
Command = ecPaste
ShortCut = 8237
end
item
Command = ecDeleteChar
ShortCut = 46
end
item
Command = ecCut
ShortCut = 8238
end
item
Command = ecDeleteLastChar
ShortCut = 8
end
item
Command = ecDeleteLastChar
ShortCut = 8200
end
item
Command = ecDeleteLastWord
ShortCut = 16392
end
item
Command = ecUndo
ShortCut = 32776
end
item
Command = ecRedo
ShortCut = 40968
end
item
Command = ecLineBreak
ShortCut = 13
end
item
Command = ecSelectAll
ShortCut = 16449
end
item
Command = ecCopy
ShortCut = 16451
end
item
Command = ecBlockIndent
ShortCut = 24649
end
item
Command = ecLineBreak
ShortCut = 16461
end
item
Command = ecInsertLine
ShortCut = 16462
end
item
Command = ecDeleteWord
ShortCut = 16468
end
item
Command = ecBlockUnindent
ShortCut = 24661
end
item
Command = ecPaste
ShortCut = 16470
end
item
Command = ecCut
ShortCut = 16472
end
item
Command = ecDeleteLine
ShortCut = 16473
end
item
Command = ecDeleteEOL
ShortCut = 24665
end
item
Command = ecUndo
ShortCut = 16474
end
item
Command = ecRedo
ShortCut = 24666
end
item
Command = ecGotoMarker0
ShortCut = 16432
end
item
Command = ecGotoMarker1
ShortCut = 16433
end
item
Command = ecGotoMarker2
ShortCut = 16434
end
item
Command = ecGotoMarker3
ShortCut = 16435
end
item
Command = ecGotoMarker4
ShortCut = 16436
end
item
Command = ecGotoMarker5
ShortCut = 16437
end
item
Command = ecGotoMarker6
ShortCut = 16438
end
item
Command = ecGotoMarker7
ShortCut = 16439
end
item
Command = ecGotoMarker8
ShortCut = 16440
end
item
Command = ecGotoMarker9
ShortCut = 16441
end
item
Command = ecSetMarker0
ShortCut = 24624
end
item
Command = ecSetMarker1
ShortCut = 24625
end
item
Command = ecSetMarker2
ShortCut = 24626
end
item
Command = ecSetMarker3
ShortCut = 24627
end
item
Command = ecSetMarker4
ShortCut = 24628
end
item
Command = ecSetMarker5
ShortCut = 24629
end
item
Command = ecSetMarker6
ShortCut = 24630
end
item
Command = ecSetMarker7
ShortCut = 24631
end
item
Command = ecSetMarker8
ShortCut = 24632
end
item
Command = ecSetMarker9
ShortCut = 24633
end
item
Command = EcFoldLevel1
ShortCut = 41009
end
item
Command = EcFoldLevel2
ShortCut = 41010
end
item
Command = EcFoldLevel3
ShortCut = 41011
end
item
Command = EcFoldLevel4
ShortCut = 41012
end
item
Command = EcFoldLevel5
ShortCut = 41013
end
item
Command = EcFoldLevel6
ShortCut = 41014
end
item
Command = EcFoldLevel7
ShortCut = 41015
end
item
Command = EcFoldLevel8
ShortCut = 41016
end
item
Command = EcFoldLevel9
ShortCut = 41017
end
item
Command = EcFoldLevel0
ShortCut = 41008
end
item
Command = EcFoldCurrent
ShortCut = 41005
end
item
Command = EcUnFoldCurrent
ShortCut = 41003
end
item
Command = EcToggleMarkupWord
ShortCut = 32845
end
item
Command = ecNormalSelect
ShortCut = 24654
end
item
Command = ecColumnSelect
ShortCut = 24643
end
item
Command = ecLineSelect
ShortCut = 24652
end
item
Command = ecTab
ShortCut = 9
end
item
Command = ecShiftTab
ShortCut = 8201
end
item
Command = ecMatchBracket
ShortCut = 24642
end
item
Command = ecColSelUp
ShortCut = 40998
end
item
Command = ecColSelDown
ShortCut = 41000
end
item
Command = ecColSelLeft
ShortCut = 40997
end
item
Command = ecColSelRight
ShortCut = 40999
end
item
Command = ecColSelPageDown
ShortCut = 40994
end
item
Command = ecColSelPageBottom
ShortCut = 57378
end
item
Command = ecColSelPageUp
ShortCut = 40993
end
item
Command = ecColSelPageTop
ShortCut = 57377
end
item
Command = ecColSelLineStart
ShortCut = 40996
end
item
Command = ecColSelLineEnd
ShortCut = 40995
end
item
Command = ecColSelEditorTop
ShortCut = 57380
end
item
Command = ecColSelEditorBottom
ShortCut = 57379
end>
MouseActions = <>
MouseTextActions = <>
MouseSelActions = <>
Lines.Strings = (
'sePreview'
)
VisibleSpecialChars = [vscSpace, vscTabAtLast]
SelectedColor.BackPriority = 50
SelectedColor.ForePriority = 50
SelectedColor.FramePriority = 50
SelectedColor.BoldPriority = 50
SelectedColor.ItalicPriority = 50
SelectedColor.UnderlinePriority = 50
SelectedColor.StrikeOutPriority = 50
BracketHighlightStyle = sbhsBoth
BracketMatchColor.Background = clNone
BracketMatchColor.Foreground = clNone
BracketMatchColor.Style = [fsBold]
FoldedCodeColor.Background = clNone
FoldedCodeColor.Foreground = clGray
FoldedCodeColor.FrameColor = clGray
MouseLinkColor.Background = clNone
MouseLinkColor.Foreground = clBlue
LineHighlightColor.Background = clNone
LineHighlightColor.Foreground = clNone
inline SynLeftGutterPartList1: TSynGutterPartList
object SynGutterMarks1: TSynGutterMarks
Width = 24
MouseActions = <>
end
object SynGutterLineNumber1: TSynGutterLineNumber
Width = 17
MouseActions = <>
MarkupInfo.Background = clBtnFace
MarkupInfo.Foreground = clNone
DigitCount = 2
ShowOnlyLineNumbersMultiplesOf = 1
ZeroStart = False
LeadingZeros = False
end
object SynGutterChanges1: TSynGutterChanges
Width = 4
MouseActions = <>
ModifiedColor = 59900
SavedColor = clGreen
end
object SynGutterSeparator1: TSynGutterSeparator
Width = 2
MouseActions = <>
MarkupInfo.Background = clWhite
MarkupInfo.Foreground = clGray
end
object SynGutterCodeFolding1: TSynGutterCodeFolding
MouseActions = <>
MarkupInfo.Background = clNone
MarkupInfo.Foreground = clGray
MouseActionsExpanded = <>
MouseActionsCollapsed = <>
end
end
end
end
end end
object PDlgButtons: TButtonPanel object PDlgButtons: TButtonPanel
Left = 6 Left = 6
Height = 35 Height = 39
Top = 337 Top = 333
Width = 450 Width = 537
OKButton.Name = 'OKButton'
OKButton.DefaultCaption = True
HelpButton.Name = 'HelpButton'
HelpButton.DefaultCaption = True
CloseButton.Name = 'CloseButton'
CloseButton.DefaultCaption = True
CancelButton.Name = 'CancelButton'
CancelButton.DefaultCaption = True
TabOrder = 2 TabOrder = 2
end end
object ALList: TActionList object ALList: TActionList
left = 5 Left = 5
top = 204 Top = 204
object AUP: TAction object AUP: TAction
OnExecute = AUPExecute OnExecute = AUPExecute
end end
@ -369,4 +890,12 @@ object BaseConfigGeneratorForm: TBaseConfigGeneratorForm
OnExecute = ADownExecute OnExecute = ADownExecute
end end
end end
object SHPreview: TSynFreePascalSyn
Enabled = False
CompilerMode = pcmObjFPC
NestedComments = True
TypeHelpers = False
Left = 207
Top = 175
end
end end

View File

@ -7,7 +7,7 @@ interface
uses uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls,
StdCtrls, EditBtn, ComCtrls, RTTIGrids, CheckLst, fpddcodegen, Buttons, StdCtrls, EditBtn, ComCtrls, RTTIGrids, CheckLst, fpddcodegen, Buttons,
ActnList, ButtonPanel, ldd_consts; ActnList, ButtonPanel, ldd_consts, SynEdit, SynHighlighterPas;
type type
@ -34,6 +34,9 @@ type
Splitter1: TSplitter; Splitter1: TSplitter;
GFieldProps: TTIPropertyGrid; GFieldProps: TTIPropertyGrid;
GCodeOptions: TTIPropertyGrid; GCodeOptions: TTIPropertyGrid;
sePreview: TSynEdit;
SHPreview: TSynFreePascalSyn;
TSPreview: TTabSheet;
TSFields: TTabSheet; TSFields: TTabSheet;
TSOptions: TTabSheet; TSOptions: TTabSheet;
procedure CLBFieldsClick(Sender: TObject); procedure CLBFieldsClick(Sender: TObject);
@ -41,11 +44,14 @@ type
procedure CLBFieldsKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure CLBFieldsKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure ADownExecute(Sender: TObject); procedure ADownExecute(Sender: TObject);
procedure AUpExecute(Sender: TObject); procedure AUpExecute(Sender: TObject);
procedure FEFileEditingDone(Sender: TObject);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
procedure PCConfChange(Sender: TObject);
procedure Splitter1Moved(Sender: TObject); procedure Splitter1Moved(Sender: TObject);
private private
{ private declarations } { private declarations }
FLastName : String; // Last Unit name assigned
FFieldmap : TFieldPropDefs; FFieldmap : TFieldPropDefs;
FGen: TDDCustomCodeGenerator; FGen: TDDCustomCodeGenerator;
FCodeOptions : TCodeGeneratorOptions; FCodeOptions : TCodeGeneratorOptions;
@ -62,6 +68,7 @@ type
procedure SetFileName(const AValue: String); procedure SetFileName(const AValue: String);
procedure SetGen(const AValue: TDDCustomCodeGenerator); procedure SetGen(const AValue: TDDCustomCodeGenerator);
procedure SetShowResult(const AValue: Boolean); procedure SetShowResult(const AValue: Boolean);
procedure ShowPreview;
procedure ShowSelectedField; procedure ShowSelectedField;
public public
{ public declarations } { public declarations }
@ -76,7 +83,7 @@ var
implementation implementation
uses typinfo,lcltype; uses strutils, typinfo,lcltype;
{$R *.lfm} {$R *.lfm}
@ -225,6 +232,27 @@ begin
MoveFieldUp; MoveFieldUp;
end; end;
procedure TBaseConfigGeneratorForm.FEFileEditingDone(Sender: TObject);
Var
OldName,NewName : string;
begin
OldName:=FGen.CodeOptions.UnitName;
if (OldName='') or
SameText(OldName,'Unit1') or
SameText(OldName,FLastname) then
begin
NewName:=ExtractFileName(FEFile.FileName);
FLastName:=NewName;
// Strip off known extensions
if (IndexText(ExtractFileExt(FileName),['.pas','.pp','.inc','.lpr','.dpr'])<>-1) then
FGen.CodeOptions.UnitName:=ChangeFileExt(NewName,'')
else
FGen.CodeOptions.UnitName:=NewName;
end;
end;
procedure TBaseConfigGeneratorForm.FormCreate(Sender: TObject); procedure TBaseConfigGeneratorForm.FormCreate(Sender: TObject);
begin begin
// //
@ -245,6 +273,33 @@ begin
FreeAndNil(FCodeOPtions); FreeAndNil(FCodeOPtions);
end; end;
procedure TBaseConfigGeneratorForm.ShowPreview;
Var
CG : TDDCustomCodeGenerator;
begin
CG:=TDDCustomCodeGeneratorClass(FGen.ClassType).Create(Self);
try
sePreview.Lines.BeginUpdate;
sePreview.Lines.Clear;
CG.CodeOptions.Assign(FCodeOptions);
CG.Fields.Assign(FGen.Fields);
CG.GenerateCode(sePreview.Lines);
finally
sePreview.Lines.EndUpdate;
CG.Free;
end;
end;
procedure TBaseConfigGeneratorForm.PCConfChange(Sender: TObject);
begin
if (PCConf.ActivePage=tsPreview) then
ShowPreview;
end;
procedure TBaseConfigGeneratorForm.Splitter1Moved(Sender: TObject); procedure TBaseConfigGeneratorForm.Splitter1Moved(Sender: TObject);
begin begin
LFields.Width:=Splitter1.Left; LFields.Width:=Splitter1.Left;