+Every type editor dialog now has a XSD ( XML Schema Definition ) view that present the XSD source for the type being visualized

+Every type editor dialog now has a dependencies view that show the list of types using the type being visualized
+Search capability to the types tree view of the main window
+Every type editor dialog now has a "Apply" button to save changes without closing the dialog

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@521 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2008-08-04 00:33:35 +00:00
parent 639bde5376
commit e097180997
20 changed files with 3492 additions and 572 deletions

View File

@ -209,7 +209,7 @@
</CodeGeneration> </CodeGeneration>
<Linking> <Linking>
<Debugging> <Debugging>
<UseLineInfoUnit Value="False"/> <GenerateDebugInfo Value="True"/>
<StripSymbols Value="True"/> <StripSymbols Value="True"/>
</Debugging> </Debugging>
<LinkSmart Value="True"/> <LinkSmart Value="True"/>

View File

@ -5,7 +5,7 @@ object fArrayEdit: TfArrayEdit
Width = 392 Width = 392
HorzScrollBar.Page = 391 HorzScrollBar.Page = 391
VertScrollBar.Page = 374 VertScrollBar.Page = 374
ActiveControl = Button1 ActiveControl = PC
BorderStyle = bsSizeToolWin BorderStyle = bsSizeToolWin
Caption = 'fArrayEdit' Caption = 'fArrayEdit'
ClientHeight = 375 ClientHeight = 375
@ -21,7 +21,7 @@ object fArrayEdit: TfArrayEdit
ClientWidth = 392 ClientWidth = 392
TabOrder = 0 TabOrder = 0
object Button1: TButton object Button1: TButton
Left = 216 Left = 129
Height = 25 Height = 25
Top = 9 Top = 9
Width = 75 Width = 75
@ -31,7 +31,7 @@ object fArrayEdit: TfArrayEdit
TabOrder = 0 TabOrder = 0
end end
object Button2: TButton object Button2: TButton
Left = 304 Left = 214
Height = 25 Height = 25
Top = 9 Top = 9
Width = 75 Width = 75
@ -42,14 +42,25 @@ object fArrayEdit: TfArrayEdit
ModalResult = 2 ModalResult = 2
TabOrder = 1 TabOrder = 1
end end
object Button6: TButton
Left = 299
Height = 25
Top = 9
Width = 75
Action = actApply
Anchors = [akTop, akRight]
TabOrder = 2
end end
object PageControl1: TPageControl end
object PC: TPageControl
Height = 325 Height = 325
Width = 392 Width = 392
ActivePage = TabSheet1 ActivePage = TabSheet1
Align = alClient Align = alClient
TabIndex = 0 TabIndex = 0
TabOrder = 1 TabOrder = 1
OnChange = PCChange
OnPageChanged = PCChange
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'Array definition' Caption = 'Array definition'
ClientHeight = 299 ClientHeight = 299
@ -124,6 +135,368 @@ object fArrayEdit: TfArrayEdit
TabOrder = 4 TabOrder = 4
end end
end end
object tsSourceXSD: TTabSheet
Caption = 'XSD'
ClientHeight = 299
ClientWidth = 384
object edtSourceXSD: TSynEdit
Left = 13
Height = 272
Top = 10
Width = 352
Anchors = [akTop, akLeft, akRight, akBottom]
Font.Height = -20
Font.Name = 'courier'
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = 42
Gutter.DigitCount = 2
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
Gutter.Width = 10
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
item
Command = 3
ShortCut = 38
end
item
Command = 103
ShortCut = 8230
end
item
Command = 211
ShortCut = 16422
end
item
Command = 4
ShortCut = 40
end
item
Command = 104
ShortCut = 8232
end
item
Command = 212
ShortCut = 16424
end
item
Command = 1
ShortCut = 37
end
item
Command = 101
ShortCut = 8229
end
item
Command = 5
ShortCut = 16421
end
item
Command = 105
ShortCut = 24613
end
item
Command = 2
ShortCut = 39
end
item
Command = 102
ShortCut = 8231
end
item
Command = 6
ShortCut = 16423
end
item
Command = 106
ShortCut = 24615
end
item
Command = 10
ShortCut = 34
end
item
Command = 110
ShortCut = 8226
end
item
Command = 14
ShortCut = 16418
end
item
Command = 114
ShortCut = 24610
end
item
Command = 9
ShortCut = 33
end
item
Command = 109
ShortCut = 8225
end
item
Command = 13
ShortCut = 16417
end
item
Command = 113
ShortCut = 24609
end
item
Command = 7
ShortCut = 36
end
item
Command = 107
ShortCut = 8228
end
item
Command = 15
ShortCut = 16420
end
item
Command = 115
ShortCut = 24612
end
item
Command = 8
ShortCut = 35
end
item
Command = 108
ShortCut = 8227
end
item
Command = 16
ShortCut = 16419
end
item
Command = 116
ShortCut = 24611
end
item
Command = 223
ShortCut = 45
end
item
Command = 201
ShortCut = 16429
end
item
Command = 604
ShortCut = 8237
end
item
Command = 502
ShortCut = 46
end
item
Command = 603
ShortCut = 8238
end
item
Command = 501
ShortCut = 8
end
item
Command = 501
ShortCut = 8200
end
item
Command = 504
ShortCut = 16392
end
item
Command = 601
ShortCut = 32776
end
item
Command = 602
ShortCut = 40968
end
item
Command = 509
ShortCut = 13
end
item
Command = 199
ShortCut = 16449
end
item
Command = 201
ShortCut = 16451
end
item
Command = 610
ShortCut = 24649
end
item
Command = 509
ShortCut = 16461
end
item
Command = 510
ShortCut = 16462
end
item
Command = 503
ShortCut = 16468
end
item
Command = 611
ShortCut = 24661
end
item
Command = 604
ShortCut = 16470
end
item
Command = 603
ShortCut = 16472
end
item
Command = 507
ShortCut = 16473
end
item
Command = 506
ShortCut = 24665
end
item
Command = 601
ShortCut = 16474
end
item
Command = 602
ShortCut = 24666
end
item
Command = 301
ShortCut = 16432
end
item
Command = 302
ShortCut = 16433
end
item
Command = 303
ShortCut = 16434
end
item
Command = 304
ShortCut = 16435
end
item
Command = 305
ShortCut = 16436
end
item
Command = 306
ShortCut = 16437
end
item
Command = 307
ShortCut = 16438
end
item
Command = 308
ShortCut = 16439
end
item
Command = 309
ShortCut = 16440
end
item
Command = 310
ShortCut = 16441
end
item
Command = 351
ShortCut = 24624
end
item
Command = 352
ShortCut = 24625
end
item
Command = 353
ShortCut = 24626
end
item
Command = 354
ShortCut = 24627
end
item
Command = 355
ShortCut = 24628
end
item
Command = 356
ShortCut = 24629
end
item
Command = 357
ShortCut = 24630
end
item
Command = 358
ShortCut = 24631
end
item
Command = 359
ShortCut = 24632
end
item
Command = 360
ShortCut = 24633
end
item
Command = 231
ShortCut = 24654
end
item
Command = 232
ShortCut = 24643
end
item
Command = 233
ShortCut = 24652
end
item
Command = 612
ShortCut = 9
end
item
Command = 613
ShortCut = 8201
end
item
Command = 250
ShortCut = 24642
end>
ReadOnly = True
end
end
object tsDependencies: TTabSheet
Caption = 'Used by'
ClientHeight = 299
ClientWidth = 384
object tvDependency: TTreeView
Left = 12
Height = 272
Top = 10
Width = 352
Anchors = [akTop, akLeft, akRight, akBottom]
DefaultItemHeight = 15
ReadOnly = True
RightClickSelect = True
TabOrder = 0
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
end
end end
object AL: TActionList object AL: TActionList
left = 215 left = 215
@ -134,5 +507,18 @@ object fArrayEdit: TfArrayEdit
OnExecute = actOKExecute OnExecute = actOKExecute
OnUpdate = actOKUpdate OnUpdate = actOKUpdate
end end
object actApply: TAction
Caption = 'Apply'
DisableIfNoHandler = True
OnExecute = actApplyExecute
OnUpdate = actOKUpdate
end
end
object SynXMLSyn1: TSynXMLSyn
DefaultFilter = 'Documents XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'
Enabled = False
WantBracesParsed = False
left = 266
top = 227
end end
end end

View File

@ -3,39 +3,102 @@
LazarusResources.Add('TfArrayEdit','FORMDATA',[ LazarusResources.Add('TfArrayEdit','FORMDATA',[
'TPF0'#11'TfArrayEdit'#10'fArrayEdit'#4'Left'#3'G'#1#6'Height'#3'w'#1#3'Top'#3 'TPF0'#11'TfArrayEdit'#10'fArrayEdit'#4'Left'#3'G'#1#6'Height'#3'w'#1#3'Top'#3
+#132#0#5'Width'#3#136#1#18'HorzScrollBar.Page'#3#135#1#18'VertScrollBar.Page' +#132#0#5'Width'#3#136#1#18'HorzScrollBar.Page'#3#135#1#18'VertScrollBar.Page'
+#3'v'#1#13'ActiveControl'#7#7'Button1'#11'BorderStyle'#7#13'bsSizeToolWin'#7 +#3'v'#1#13'ActiveControl'#7#2'PC'#11'BorderStyle'#7#13'bsSizeToolWin'#7'Capt'
+'Caption'#6#10'fArrayEdit'#12'ClientHeight'#3'w'#1#11'ClientWidth'#3#136#1#8 +'ion'#6#10'fArrayEdit'#12'ClientHeight'#3'w'#1#11'ClientWidth'#3#136#1#8'Pos'
+'Position'#7#16'poMainFormCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'P' +'ition'#7#16'poMainFormCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'Pane'
+'anel1'#6'Height'#2'2'#3'Top'#3'E'#1#5'Width'#3#136#1#5'Align'#7#8'alBottom' +'l1'#6'Height'#2'2'#3'Top'#3'E'#1#5'Width'#3#136#1#5'Align'#7#8'alBottom'#12
+#12'ClientHeight'#2'2'#11'ClientWidth'#3#136#1#8'TabOrder'#2#0#0#7'TButton'#7 +'ClientHeight'#2'2'#11'ClientWidth'#3#136#1#8'TabOrder'#2#0#0#7'TButton'#7'B'
+'Button1'#4'Left'#3#216#0#6'Height'#2#25#3'Top'#2#9#5'Width'#2'K'#6'Action'#7 +'utton1'#4'Left'#3#129#0#6'Height'#2#25#3'Top'#2#9#5'Width'#2'K'#6'Action'#7
+#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2 +#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2
+#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3'0'#1#6'Height'#2#25#3 +#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#214#0#6'Height'#2#25#3
+'Top'#2#9#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing' +'Top'#2#9#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing'
+'.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8 +'.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8
+'TabOrder'#2#1#0#0#0#12'TPageControl'#12'PageControl1'#6'Height'#3'E'#1#5'Wi' +'TabOrder'#2#1#0#0#7'TButton'#7'Button6'#4'Left'#3'+'#1#6'Height'#2#25#3'Top'
+'dth'#3#136#1#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabInde' +#2#9#5'Width'#2'K'#6'Action'#7#8'actApply'#7'Anchors'#11#5'akTop'#7'akRight'
+'x'#2#0#8'TabOrder'#2#1#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#16'Array de' +#0#8'TabOrder'#2#2#0#0#0#12'TPageControl'#2'PC'#6'Height'#3'E'#1#5'Width'#3
+'finition'#12'ClientHeight'#3'+'#1#11'ClientWidth'#3#128#1#0#6'TLabel'#6'Lab' +#136#1#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8
+'el1'#4'Left'#2#20#6'Height'#2#14#3'Top'#2#21#5'Width'#2#28#7'Caption'#6#4'N' +'TabOrder'#2#1#8'OnChange'#7#8'PCChange'#13'OnPageChanged'#7#8'PCChange'#0#9
+'ame'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#20#6'Height'#2#14#3 +'TTabSheet'#9'TabSheet1'#7'Caption'#6#16'Array definition'#12'ClientHeight'#3
+'Top'#2'f'#5'Width'#2'B'#7'Caption'#6#12'Element Type'#11'ParentColor'#8#0#0 +'+'#1#11'ClientWidth'#3#128#1#0#6'TLabel'#6'Label1'#4'Left'#2#20#6'Height'#2
+#6'TLabel'#6'Label3'#4'Left'#2#20#6'Height'#2#14#3'Top'#3#170#0#5'Width'#2'E' +#14#3'Top'#2#21#5'Width'#2#28#7'Caption'#6#4'Name'#11'ParentColor'#8#0#0#6'T'
+#7'Caption'#6#12'Element Name'#11'ParentColor'#8#0#0#5'TEdit'#7'edtName'#4'L' +'Label'#6'Label2'#4'Left'#2#20#6'Height'#2#14#3'Top'#2'f'#5'Width'#2'B'#7'Ca'
+'eft'#2#20#6'Height'#2#23#3'Top'#2'*'#5'Width'#3'Q'#1#7'Anchors'#11#5'akTop' +'ption'#6#12'Element Type'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'
+#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#9'TComboBox'#14'edtElementType'#4 +#2#20#6'Height'#2#14#3'Top'#3#170#0#5'Width'#2'E'#7'Caption'#6#12'Element Na'
+'Left'#2#20#6'Height'#2#21#3'Top'#2'z'#5'Width'#3'Q'#1#7'Anchors'#11#5'akTop' +'me'#11'ParentColor'#8#0#0#5'TEdit'#7'edtName'#4'Left'#2#20#6'Height'#2#23#3
+#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20 +'Top'#2'*'#5'Width'#3'Q'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'T'
+'cbactSearchAscending'#0#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'#7#14 +'abOrder'#2#0#0#0#9'TComboBox'#14'edtElementType'#4'Left'#2#20#6'Height'#2#21
+'csDropDownList'#8'TabOrder'#2#1#0#0#9'TCheckBox'#11'edtEmbedded'#4'Left'#2 +#3'Top'#2'z'#5'Width'#3'Q'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16
+#20#6'Height'#2#19#3'Top'#3#226#0#5'Width'#3'Q'#1#7'Caption'#6'AEmbedded ( i' +'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0
+'tems are expanded directly in the enclosing element )'#8'TabOrder'#2#3#0#0#5 +#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrd'
+'TEdit'#14'edtElementName'#4'Left'#2#20#6'Height'#2#23#3'Top'#3#186#0#5'Widt' +'er'#2#1#0#0#9'TCheckBox'#11'edtEmbedded'#4'Left'#2#20#6'Height'#2#19#3'Top'
+'h'#3'Q'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#2#4'T' +#3#226#0#5'Width'#3'Q'#1#7'Caption'#6'AEmbedded ( items are expanded directl'
+'ext'#6#4'Item'#0#0#9'TCheckBox'#13'edtCollection'#4'Left'#2#20#6'Height'#2 +'y in the enclosing element )'#8'TabOrder'#2#3#0#0#5'TEdit'#14'edtElementNam'
+#19#3'Top'#3#2#1#5'Width'#3'`'#1#7'Caption'#6'FCollection ( Pascal type will' +'e'#4'Left'#2#20#6'Height'#2#23#3'Top'#3#186#0#5'Width'#3'Q'#1#7'Anchors'#11
+' derive from TObjectCollectionRemotable )'#8'TabOrder'#2#4#0#0#0#0#11'TActi' +#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#2#4'Text'#6#4'Item'#0#0#9'TCh'
+'onList'#2'AL'#4'left'#3#215#0#3'top'#3#185#0#0#7'TAction'#5'actOK'#7'Captio' +'eckBox'#13'edtCollection'#4'Left'#2#20#6'Height'#2#19#3'Top'#3#2#1#5'Width'
+'n'#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpd' +#3'`'#1#7'Caption'#6'FCollection ( Pascal type will derive from TObjectColle'
+'ate'#7#11'actOKUpdate'#0#0#0#0 +'ctionRemotable )'#8'TabOrder'#2#4#0#0#0#9'TTabSheet'#11'tsSourceXSD'#7'Capt'
+'ion'#6#3'XSD'#12'ClientHeight'#3'+'#1#11'ClientWidth'#3#128#1#0#8'TSynEdit'
+#12'edtSourceXSD'#4'Left'#2#13#6'Height'#3#16#1#3'Top'#2#10#5'Width'#3'`'#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2
+#236#9'Font.Name'#6#7'courier'#11'ParentColor'#8#8'TabOrder'#2#0#23'BookMark'
+'Options.Xoffset'#2'*'#17'Gutter.DigitCount'#2#2#22'Gutter.ShowLineNumbers'#9
+#22'Gutter.ShowCodeFolding'#9#12'Gutter.Width'#2#10#23'Gutter.CodeFoldingWid'
+'th'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#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#8'ReadOnly'#9#0#0#0#9'TTabSheet'#14
+'tsDependencies'#7'Caption'#6#7'Used by'#12'ClientHeight'#3'+'#1#11'ClientWi'
+'dth'#3#128#1#0#9'TTreeView'#12'tvDependency'#4'Left'#2#12#6'Height'#3#16#1#3
+'Top'#2#10#5'Width'#3'`'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akB'
+'ottom'#0#17'DefaultItemHeight'#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8
+'TabOrder'#2#0#7'Options'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21't'
+'voKeepCollapsedNodes'#11'tvoReadOnly'#19'tvoRightClickSelect'#14'tvoShowBut'
+'tons'#12'tvoShowLines'#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#0#0#11'TAction'
+'List'#2'AL'#4'left'#3#215#0#3'top'#3#185#0#0#7'TAction'#5'actOK'#7'Caption'
+#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'
+#7#11'actOKUpdate'#0#0#7'TAction'#8'actApply'#7'Caption'#6#5'Apply'#18'Disab'
+'leIfNoHandler'#9#9'OnExecute'#7#15'actApplyExecute'#8'OnUpdate'#7#11'actOKU'
+'pdate'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6'MDocuments X'
+'ML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'#7'Enabl'
+'ed'#8#16'WantBracesParsed'#8#4'left'#3#10#1#3'top'#3#227#0#0#0#0
]); ]);

View File

@ -6,41 +6,56 @@ interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
ComCtrls, StdCtrls, ActnList, Buttons, ComCtrls, StdCtrls, ActnList, Buttons, Contnrs,
pastree, pascal_parser_intf, edit_helper; pastree, pascal_parser_intf, edit_helper, SynHighlighterXML, SynEdit;
type type
{ TfArrayEdit } { TfArrayEdit }
TfArrayEdit = class(TForm) TfArrayEdit = class(TForm)
actApply : TAction;
actOK : TAction; actOK : TAction;
AL : TActionList; AL : TActionList;
Button1 : TButton; Button1 : TButton;
Button2 : TButton; Button2 : TButton;
Button6 : TButton;
edtCollection : TCheckBox; edtCollection : TCheckBox;
edtEmbedded : TCheckBox; edtEmbedded : TCheckBox;
edtElementName : TEdit; edtElementName : TEdit;
edtElementType : TComboBox; edtElementType : TComboBox;
edtName : TEdit; edtName : TEdit;
edtSourceXSD : TSynEdit;
Label1 : TLabel; Label1 : TLabel;
Label2 : TLabel; Label2 : TLabel;
Label3 : TLabel; Label3 : TLabel;
PageControl1 : TPageControl; PC : TPageControl;
Panel1 : TPanel; Panel1 : TPanel;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1 : TTabSheet; TabSheet1 : TTabSheet;
tsDependencies : TTabSheet;
tsSourceXSD : TTabSheet;
tvDependency : TTreeView;
procedure actApplyExecute(Sender : TObject);
procedure actOKExecute(Sender : TObject); procedure actOKExecute(Sender : TObject);
procedure actOKUpdate(Sender : TObject); procedure actOKUpdate(Sender : TObject);
procedure PCChange(Sender : TObject);
private private
FUpdateType : TEditType; FUpdateType : TEditType;
FObject : TPasArrayType; FObject : TPasArrayType;
FSymbolTable : TwstPasTreeContainer; FSymbolTable : TwstPasTreeContainer;
FApplied : Boolean;
FDependencyList : TObjectList;
private private
property UpdateType : TEditType read FUpdateType; property UpdateType : TEditType read FUpdateType;
private private
procedure LoadFromObject(); procedure LoadFromObject();
procedure SaveToObject(); procedure SaveToObject();
procedure ShowSourceXSD();
procedure ShowDependencies();
public public
destructor Destroy();override;
function UpdateObject( function UpdateObject(
var AObject : TPasArrayType; var AObject : TPasArrayType;
const AUpdateType : TEditType; const AUpdateType : TEditType;
@ -52,7 +67,8 @@ var
fArrayEdit : TfArrayEdit; fArrayEdit : TfArrayEdit;
implementation implementation
uses parserutils; uses
parserutils, view_helper;
{ TfArrayEdit } { TfArrayEdit }
@ -67,6 +83,17 @@ begin
( edtElementType.ItemIndex >= 0 ) ; ( edtElementType.ItemIndex >= 0 ) ;
end; end;
procedure TfArrayEdit.PCChange(Sender : TObject);
begin
if ( PC.ActivePage = tsSourceXSD ) then begin
if actApply.Enabled then
actApply.Execute();
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end;
end;
procedure TfArrayEdit.actOKExecute(Sender : TObject); procedure TfArrayEdit.actOKExecute(Sender : TObject);
var var
eltType : TPasType; eltType : TPasType;
@ -86,6 +113,13 @@ begin
ModalResult := mrOK; ModalResult := mrOK;
end; end;
procedure TfArrayEdit.actApplyExecute(Sender : TObject);
begin
SaveToObject();
if ( PC.ActivePage = tsSourceXSD ) then
ShowSourceXSD();
end;
procedure TfArrayEdit.LoadFromObject(); procedure TfArrayEdit.LoadFromObject();
begin begin
edtElementType.Clear(); edtElementType.Clear();
@ -126,7 +160,7 @@ begin
else else
arrStyle := asScoped; arrStyle := asScoped;
eltType := edtElementType.Items.Objects[edtElementType.ItemIndex] as TPasType; eltType := edtElementType.Items.Objects[edtElementType.ItemIndex] as TPasType;
if ( UpdateType = etCreate ) then begin if ( UpdateType = etCreate ) and ( FObject = nil ) then begin
locObj := FSymbolTable.CreateArray(typIntName,eltType,eltExtName,eltIntName,arrStyle); locObj := FSymbolTable.CreateArray(typIntName,eltType,eltExtName,eltIntName,arrStyle);
FSymbolTable.CurrentModule.InterfaceSection.Declarations.Add(locObj); FSymbolTable.CurrentModule.InterfaceSection.Declarations.Add(locObj);
FSymbolTable.CurrentModule.InterfaceSection.Types.Add(locObj); FSymbolTable.CurrentModule.InterfaceSection.Types.Add(locObj);
@ -148,6 +182,27 @@ begin
if ( edtCollection.Checked <> FSymbolTable.IsCollection(FObject) ) then if ( edtCollection.Checked <> FSymbolTable.IsCollection(FObject) ) then
FSymbolTable.SetCollectionFlag(FObject,edtCollection.Checked); FSymbolTable.SetCollectionFlag(FObject,edtCollection.Checked);
FSymbolTable.RegisterExternalAlias(locObj,typExtName); FSymbolTable.RegisterExternalAlias(locObj,typExtName);
FApplied := True;
end;
procedure TfArrayEdit.ShowSourceXSD();
begin
edtSourceXSD.Lines.Text := XsdGenerateSourceForObject(FObject,FSymbolTable);
end;
procedure TfArrayEdit.ShowDependencies();
begin
if ( FDependencyList = nil ) then
FDependencyList := TObjectList.Create(True);
FDependencyList.Clear();
FindDependencies(FObject,FSymbolTable,FDependencyList);
DrawDependencies(tvDependency,FDependencyList);
end;
destructor TfArrayEdit.Destroy();
begin
FDependencyList.Free();
inherited Destroy();
end; end;
function TfArrayEdit.UpdateObject( function TfArrayEdit.UpdateObject(
@ -161,7 +216,7 @@ begin
FObject := AObject; FObject := AObject;
LoadFromObject(); LoadFromObject();
Result := ( ShowModal() = mrOK ); Result := ( ShowModal() = mrOK );
if Result then begin if Result or FApplied then begin
SaveToObject(); SaveToObject();
if ( AUpdateType = etCreate ) then begin if ( AUpdateType = etCreate ) then begin
AObject := FObject; AObject := FObject;

View File

@ -1,11 +1,11 @@
object fClassEdit: TfClassEdit object fClassEdit: TfClassEdit
Left = 272 Left = 852
Height = 547 Height = 547
Top = 42 Top = 77
Width = 518 Width = 518
HorzScrollBar.Page = 517 HorzScrollBar.Page = 517
VertScrollBar.Page = 546 VertScrollBar.Page = 546
ActiveControl = Button1 ActiveControl = PC
BorderStyle = bsSizeToolWin BorderStyle = bsSizeToolWin
Caption = 'fClassEdit' Caption = 'fClassEdit'
ClientHeight = 547 ClientHeight = 547
@ -21,7 +21,7 @@ object fClassEdit: TfClassEdit
ClientWidth = 518 ClientWidth = 518
TabOrder = 0 TabOrder = 0
object Button1: TButton object Button1: TButton
Left = 430 Left = 341
Height = 25 Height = 25
Top = 10 Top = 10
Width = 75 Width = 75
@ -30,10 +30,10 @@ object fClassEdit: TfClassEdit
Cancel = True Cancel = True
Caption = 'Cancel' Caption = 'Cancel'
ModalResult = 2 ModalResult = 2
TabOrder = 0 TabOrder = 1
end end
object Button2: TButton object Button2: TButton
Left = 340 Left = 253
Height = 25 Height = 25
Top = 10 Top = 10
Width = 75 Width = 75
@ -41,7 +41,16 @@ object fClassEdit: TfClassEdit
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
Default = True Default = True
TabOrder = 1 TabOrder = 0
end
object Button6: TButton
Left = 429
Height = 25
Top = 10
Width = 75
Action = actApply
Anchors = [akTop, akRight]
TabOrder = 2
end end
end end
object PC: TPageControl object PC: TPageControl
@ -51,6 +60,8 @@ object fClassEdit: TfClassEdit
Align = alClient Align = alClient
TabIndex = 0 TabIndex = 0
TabOrder = 1 TabOrder = 1
OnChange = PCChange
OnPageChanged = PCChange
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'Compound Object' Caption = 'Compound Object'
ClientHeight = 471 ClientHeight = 471
@ -88,7 +99,7 @@ object fClassEdit: TfClassEdit
Caption = ' Properties ' Caption = ' Properties '
ClientHeight = 294 ClientHeight = 294
ClientWidth = 491 ClientWidth = 491
TabOrder = 1 TabOrder = 2
object edtProp: TListView object edtProp: TListView
Height = 294 Height = 294
Width = 491 Width = 491
@ -123,7 +134,7 @@ object fClassEdit: TfClassEdit
Action = actPropAdd Action = actPropAdd
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
TabOrder = 2 TabOrder = 3
end end
object Button4: TButton object Button4: TButton
Left = 116 Left = 116
@ -133,7 +144,7 @@ object fClassEdit: TfClassEdit
Action = actPropEdit Action = actPropEdit
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
TabOrder = 3 TabOrder = 4
end end
object Button5: TButton object Button5: TButton
Left = 228 Left = 228
@ -143,7 +154,7 @@ object fClassEdit: TfClassEdit
Action = actPropDelete Action = actPropDelete
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
TabOrder = 4 TabOrder = 5
end end
object edtParent: TComboBox object edtParent: TComboBox
Left = 92 Left = 92
@ -155,7 +166,372 @@ object fClassEdit: TfClassEdit
ItemHeight = 13 ItemHeight = 13
MaxLength = 0 MaxLength = 0
Style = csDropDownList Style = csDropDownList
TabOrder = 5 TabOrder = 1
end
end
object tsSourceXSD: TTabSheet
Caption = 'XSD'
ClientHeight = 471
ClientWidth = 510
object edtSourceXSD: TSynEdit
Left = 12
Height = 432
Top = 18
Width = 480
Anchors = [akTop, akLeft, akRight, akBottom]
Font.Height = -20
Font.Name = 'courier'
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = 42
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 2
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
Gutter.Width = 10
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
item
Command = 3
ShortCut = 38
end
item
Command = 103
ShortCut = 8230
end
item
Command = 211
ShortCut = 16422
end
item
Command = 4
ShortCut = 40
end
item
Command = 104
ShortCut = 8232
end
item
Command = 212
ShortCut = 16424
end
item
Command = 1
ShortCut = 37
end
item
Command = 101
ShortCut = 8229
end
item
Command = 5
ShortCut = 16421
end
item
Command = 105
ShortCut = 24613
end
item
Command = 2
ShortCut = 39
end
item
Command = 102
ShortCut = 8231
end
item
Command = 6
ShortCut = 16423
end
item
Command = 106
ShortCut = 24615
end
item
Command = 10
ShortCut = 34
end
item
Command = 110
ShortCut = 8226
end
item
Command = 14
ShortCut = 16418
end
item
Command = 114
ShortCut = 24610
end
item
Command = 9
ShortCut = 33
end
item
Command = 109
ShortCut = 8225
end
item
Command = 13
ShortCut = 16417
end
item
Command = 113
ShortCut = 24609
end
item
Command = 7
ShortCut = 36
end
item
Command = 107
ShortCut = 8228
end
item
Command = 15
ShortCut = 16420
end
item
Command = 115
ShortCut = 24612
end
item
Command = 8
ShortCut = 35
end
item
Command = 108
ShortCut = 8227
end
item
Command = 16
ShortCut = 16419
end
item
Command = 116
ShortCut = 24611
end
item
Command = 223
ShortCut = 45
end
item
Command = 201
ShortCut = 16429
end
item
Command = 604
ShortCut = 8237
end
item
Command = 502
ShortCut = 46
end
item
Command = 603
ShortCut = 8238
end
item
Command = 501
ShortCut = 8
end
item
Command = 501
ShortCut = 8200
end
item
Command = 504
ShortCut = 16392
end
item
Command = 601
ShortCut = 32776
end
item
Command = 602
ShortCut = 40968
end
item
Command = 509
ShortCut = 13
end
item
Command = 199
ShortCut = 16449
end
item
Command = 201
ShortCut = 16451
end
item
Command = 610
ShortCut = 24649
end
item
Command = 509
ShortCut = 16461
end
item
Command = 510
ShortCut = 16462
end
item
Command = 503
ShortCut = 16468
end
item
Command = 611
ShortCut = 24661
end
item
Command = 604
ShortCut = 16470
end
item
Command = 603
ShortCut = 16472
end
item
Command = 507
ShortCut = 16473
end
item
Command = 506
ShortCut = 24665
end
item
Command = 601
ShortCut = 16474
end
item
Command = 602
ShortCut = 24666
end
item
Command = 301
ShortCut = 16432
end
item
Command = 302
ShortCut = 16433
end
item
Command = 303
ShortCut = 16434
end
item
Command = 304
ShortCut = 16435
end
item
Command = 305
ShortCut = 16436
end
item
Command = 306
ShortCut = 16437
end
item
Command = 307
ShortCut = 16438
end
item
Command = 308
ShortCut = 16439
end
item
Command = 309
ShortCut = 16440
end
item
Command = 310
ShortCut = 16441
end
item
Command = 351
ShortCut = 24624
end
item
Command = 352
ShortCut = 24625
end
item
Command = 353
ShortCut = 24626
end
item
Command = 354
ShortCut = 24627
end
item
Command = 355
ShortCut = 24628
end
item
Command = 356
ShortCut = 24629
end
item
Command = 357
ShortCut = 24630
end
item
Command = 358
ShortCut = 24631
end
item
Command = 359
ShortCut = 24632
end
item
Command = 360
ShortCut = 24633
end
item
Command = 231
ShortCut = 24654
end
item
Command = 232
ShortCut = 24643
end
item
Command = 233
ShortCut = 24652
end
item
Command = 612
ShortCut = 9
end
item
Command = 613
ShortCut = 8201
end
item
Command = 250
ShortCut = 24642
end>
ReadOnly = True
SelectedColor.OnChange = nil
end
end
object tsDependencies: TTabSheet
Caption = 'Used by'
ClientHeight = 471
ClientWidth = 510
object tvDependency: TTreeView
Left = 20
Height = 433
Top = 18
Width = 464
Anchors = [akTop, akLeft, akRight, akBottom]
DefaultItemHeight = 15
ReadOnly = True
RightClickSelect = True
TabOrder = 0
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end end
end end
end end
@ -185,6 +561,12 @@ object fClassEdit: TfClassEdit
OnExecute = actPropDeleteExecute OnExecute = actPropDeleteExecute
OnUpdate = actPropEditUpdate OnUpdate = actPropEditUpdate
end end
object actApply: TAction
Caption = 'Apply'
DisableIfNoHandler = True
OnExecute = actApplyExecute
OnUpdate = actOKUpdate
end
end end
object PopupMenu1: TPopupMenu object PopupMenu1: TPopupMenu
left = 105 left = 105
@ -202,4 +584,11 @@ object fClassEdit: TfClassEdit
OnClick = actPropDeleteExecute OnClick = actPropDeleteExecute
end end
end end
object SynXMLSyn1: TSynXMLSyn
DefaultFilter = 'Documents XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'
Enabled = False
WantBracesParsed = False
left = 210
top = 171
end
end end

View File

@ -1,59 +1,123 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus } { Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfClassEdit','FORMDATA',[ LazarusResources.Add('TfClassEdit','FORMDATA',[
'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3#16#1#6'Height'#3'#'#2#3'Top'#2 'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3'T'#3#6'Height'#3'#'#2#3'Top'#2
+'*'#5'Width'#3#6#2#18'HorzScrollBar.Page'#3#5#2#18'VertScrollBar.Page'#3'"'#2 +'M'#5'Width'#3#6#2#18'HorzScrollBar.Page'#3#5#2#18'VertScrollBar.Page'#3'"'#2
+#13'ActiveControl'#7#7'Button1'#11'BorderStyle'#7#13'bsSizeToolWin'#7'Captio' +#13'ActiveControl'#7#2'PC'#11'BorderStyle'#7#13'bsSizeToolWin'#7'Caption'#6
+'n'#6#10'fClassEdit'#12'ClientHeight'#3'#'#2#11'ClientWidth'#3#6#2#8'Positio' +#10'fClassEdit'#12'ClientHeight'#3'#'#2#11'ClientWidth'#3#6#2#8'Position'#7
+'n'#7#15'poDesktopCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'Panel1'#6 +#15'poDesktopCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'Panel1'#6'Heig'
+'Height'#2'2'#3'Top'#3#241#1#5'Width'#3#6#2#5'Align'#7#8'alBottom'#12'Client' +'ht'#2'2'#3'Top'#3#241#1#5'Width'#3#6#2#5'Align'#7#8'alBottom'#12'ClientHeig'
+'Height'#2'2'#11'ClientWidth'#3#6#2#8'TabOrder'#2#0#0#7'TButton'#7'Button1'#4 +'ht'#2'2'#11'ClientWidth'#3#6#2#8'TabOrder'#2#0#0#7'TButton'#7'Button1'#4'Le'
+'Left'#3#174#1#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#7'Anchors'#11#5'akTo' +'ft'#3'U'#1#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7
+'p'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6 +'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Can'
+'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Lef' +'cel'#11'ModalResult'#2#2#8'TabOrder'#2#1#0#0#7'TButton'#7'Button2'#4'Left'#3
+'t'#3'T'#1#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5'actOK'#7'A' +#253#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5'actOK'#7'Ancho'
+'nchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#7'Defaul' +'rs'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#7'Default'#9
+'t'#9#8'TabOrder'#2#1#0#0#0#12'TPageControl'#2'PC'#6'Height'#3#241#1#5'Width' +#8'TabOrder'#2#0#0#0#7'TButton'#7'Button6'#4'Left'#3#173#1#6'Height'#2#25#3
+#3#6#2#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8 +'Top'#2#10#5'Width'#2'K'#6'Action'#7#8'actApply'#7'Anchors'#11#5'akTop'#7'ak'
+'TabOrder'#2#1#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#15'Compound Object' +'Right'#0#8'TabOrder'#2#2#0#0#0#12'TPageControl'#2'PC'#6'Height'#3#241#1#5'W'
+#12'ClientHeight'#3#215#1#11'ClientWidth'#3#254#1#0#6'TLabel'#6'Label1'#4'Le' +'idth'#3#6#2#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'
+'ft'#2#4#6'Height'#2#14#3'Top'#2#18#5'Width'#2#28#7'Caption'#6#4'Name'#11'Pa' +#2#0#8'TabOrder'#2#1#8'OnChange'#7#8'PCChange'#13'OnPageChanged'#7#8'PCChang'
+'rentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#4#6'Height'#2#14#3'Top'#2';' +'e'#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#15'Compound Object'#12'ClientHe'
+#5'Width'#2'C'#7'Caption'#6#14'Inheritts from'#11'ParentColor'#8#0#0#5'TEdit' +'ight'#3#215#1#11'ClientWidth'#3#254#1#0#6'TLabel'#6'Label1'#4'Left'#2#4#6'H'
+#7'edtName'#4'Left'#2'\'#6'Height'#2#23#3'Top'#2#18#5'Width'#3#150#1#7'Ancho' +'eight'#2#14#3'Top'#2#18#5'Width'#2#28#7'Caption'#6#4'Name'#11'ParentColor'#8
+'rs'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#9'TGroupBox'#9'G' +#0#0#6'TLabel'#6'Label2'#4'Left'#2#4#6'Height'#2#14#3'Top'#2';'#5'Width'#2'C'
+'roupBox1'#4'Left'#2#4#6'Height'#3'8'#1#3'Top'#2'b'#5'Width'#3#239#1#7'Ancho' +#7'Caption'#6#14'Inheritts from'#11'ParentColor'#8#0#0#5'TEdit'#7'edtName'#4
+'rs'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#14' Proper' +'Left'#2'\'#6'Height'#2#23#3'Top'#2#18#5'Width'#3#150#1#7'Anchors'#11#5'akTo'
+'ties '#12'ClientHeight'#3'&'#1#11'ClientWidth'#3#235#1#8'TabOrder'#2#1#0#9 +'p'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#9'TGroupBox'#9'GroupBox1'#4'L'
+'TListView'#7'edtProp'#6'Height'#3'&'#1#5'Width'#3#235#1#5'Align'#7#8'alClie' +'eft'#2#4#6'Height'#3'8'#1#3'Top'#2'b'#5'Width'#3#239#1#7'Anchors'#11#5'akTo'
+'nt'#11'BorderWidth'#2#2#7'Columns'#14#1#8'AutoSize'#9#7'Caption'#6#4'Name'#5 +'p'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#14' Properties '#12'Cl'
+'Width'#3#210#0#0#1#7'Caption'#6#4'Type'#5'Width'#3#200#0#0#1#7'Caption'#6#9 +'ientHeight'#3'&'#1#11'ClientWidth'#3#235#1#8'TabOrder'#2#2#0#9'TListView'#7
+'Attribute'#5'Width'#2'<'#0#0#9'PopupMenu'#7#10'PopupMenu1'#9'RowSelect'#9#8 +'edtProp'#6'Height'#3'&'#1#5'Width'#3#235#1#5'Align'#7#8'alClient'#11'Border'
+'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'#10'OnDblClick'#7#15'edtPropDblClic' +'Width'#2#2#7'Columns'#14#1#8'AutoSize'#9#7'Caption'#6#4'Name'#5'Width'#3#210
+'k'#0#0#0#7'TButton'#7'Button3'#4'Left'#2#4#6'Height'#2#25#3'Top'#3#165#1#5 +#0#0#1#7'Caption'#6#4'Type'#5'Width'#3#200#0#0#1#7'Caption'#6#9'Attribute'#5
+'Width'#2'd'#6'Action'#7#10'actPropAdd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0 +'Width'#2'<'#0#0#9'PopupMenu'#7#10'PopupMenu1'#9'RowSelect'#9#8'TabOrder'#2#0
+#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#2#0#0#7'TButton'#7'Button4' +#9'ViewStyle'#7#8'vsReport'#10'OnDblClick'#7#15'edtPropDblClick'#0#0#0#7'TBu'
+#4'Left'#2't'#6'Height'#2#25#3'Top'#3#165#1#5'Width'#2'd'#6'Action'#7#11'act' +'tton'#7'Button3'#4'Left'#2#4#6'Height'#2#25#3'Top'#3#165#1#5'Width'#2'd'#6
+'PropEdit'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorde' +'Action'#7#10'actPropAdd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpa'
+'r'#2#4#8'TabOrder'#2#3#0#0#7'TButton'#7'Button5'#4'Left'#3#228#0#6'Height'#2 +'cing.InnerBorder'#2#4#8'TabOrder'#2#3#0#0#7'TButton'#7'Button4'#4'Left'#2't'
+#25#3'Top'#3#165#1#5'Width'#2'd'#6'Action'#7#13'actPropDelete'#7'Anchors'#11 +#6'Height'#2#25#3'Top'#3#165#1#5'Width'#2'd'#6'Action'#7#11'actPropEdit'#7'A'
+#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#4#0 +'nchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabO'
+#0#9'TComboBox'#9'edtParent'#4'Left'#2'\'#6'Height'#2#21#3'Top'#2':'#5'Width' +'rder'#2#4#0#0#7'TButton'#7'Button5'#4'Left'#3#228#0#6'Height'#2#25#3'Top'#3
+#3#150#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText' +#165#1#5'Width'#2'd'#6'Action'#7#13'actPropDelete'#7'Anchors'#11#6'akLeft'#8
+#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#10'ItemHeight'#2#13 +'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#5#0#0#9'TComboB'
+#9'MaxLength'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#5#0#0#0#0#11'T' +'ox'#9'edtParent'#4'Left'#2'\'#6'Height'#2#21#3'Top'#2':'#5'Width'#3#150#1#7
+'ActionList'#11'ActionList1'#4'left'#3#232#0#3'top'#3#200#0#0#7'TAction'#5'a' +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbac'
+'ctOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKEx' +'tEndOfLineComplete'#20'cbactSearchAscending'#0#10'ItemHeight'#2#13#9'MaxLen'
+'ecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'#10'actPropAdd'#7'Captio' +'gth'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#1#0#0#0#9'TTabSheet'#11
+'n'#6#12'New Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actPropAdd' +'tsSourceXSD'#7'Caption'#6#3'XSD'#12'ClientHeight'#3#215#1#11'ClientWidth'#3
+'Execute'#0#0#7'TAction'#11'actPropEdit'#7'Caption'#6#13'Edit Property'#18'D' +#254#1#0#8'TSynEdit'#12'edtSourceXSD'#4'Left'#2#12#6'Height'#3#176#1#3'Top'#2
+'isableIfNoHandler'#9#9'OnExecute'#7#18'actPropEditExecute'#8'OnUpdate'#7#17 +#18#5'Width'#3#224#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'
+'actPropEditUpdate'#0#0#7'TAction'#13'actPropDelete'#7'Caption'#6#15'Delete ' +#0#11'Font.Height'#2#236#9'Font.Name'#6#7'courier'#11'ParentColor'#8#8'TabOr'
+'Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actPropDeleteExecute'#8 +'der'#2#0#23'BookMarkOptions.Xoffset'#2'*'#24'BookMarkOptions.OnChange'#13#17
+'OnUpdate'#7#17'actPropEditUpdate'#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'lef' +'Gutter.DigitCount'#2#2#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFoldi'
+'t'#2'i'#3'top'#3#186#0#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#10'actPropAd' +'ng'#9#12'Gutter.Width'#2#10#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWid'
+'d'#7'OnClick'#7#17'actPropAddExecute'#0#0#9'TMenuItem'#9'MenuItem2'#6'Actio' +'th'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Command'#2#3
+'n'#7#11'actPropEdit'#7'OnClick'#7#18'actPropEditExecute'#0#0#9'TMenuItem'#9 +#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211
+'MenuItem3'#6'Action'#7#13'actPropDelete'#7'OnClick'#7#20'actPropDeleteExecu' +#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'
+'te'#0#0#0#0 +#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#8'ReadOnly'#9#22'SelectedColor.OnC'
+'hange'#13#0#0#0#9'TTabSheet'#14'tsDependencies'#7'Caption'#6#7'Used by'#12
+'ClientHeight'#3#215#1#11'ClientWidth'#3#254#1#0#9'TTreeView'#12'tvDependenc'
+'y'#4'Left'#2#20#6'Height'#3#177#1#3'Top'#2#18#5'Width'#3#208#1#7'Anchors'#11
+#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'DefaultItemHeight'#2#15#8'Re'
+'adOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Options'#11#17'tvoAutoIt'
+'emHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoReadOnly'#19
+'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoShowRoot'#11
+'tvoToolTips'#0#0#0#0#0#11'TActionList'#11'ActionList1'#4'left'#3#232#0#3'to'
+'p'#3#200#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9
+#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'
+#10'actPropAdd'#7'Caption'#6#12'New Property'#18'DisableIfNoHandler'#9#9'OnE'
+'xecute'#7#17'actPropAddExecute'#0#0#7'TAction'#11'actPropEdit'#7'Caption'#6
+#13'Edit Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18'actPropEditExe'
+'cute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#13'actPropDelete'#7
+'Caption'#6#15'Delete Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'a'
+'ctPropDeleteExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#8'a'
+'ctApply'#7'Caption'#6#5'Apply'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'a'
+'ctApplyExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#0#10'TPopupMenu'#10'Popup'
+'Menu1'#4'left'#2'i'#3'top'#3#186#0#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7
+#10'actPropAdd'#7'OnClick'#7#17'actPropAddExecute'#0#0#9'TMenuItem'#9'MenuIt'
+'em2'#6'Action'#7#11'actPropEdit'#7'OnClick'#7#18'actPropEditExecute'#0#0#9
+'TMenuItem'#9'MenuItem3'#6'Action'#7#13'actPropDelete'#7'OnClick'#7#20'actPr'
+'opDeleteExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6'MD'
+'ocuments XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dt'
+'d'#7'Enabled'#8#16'WantBracesParsed'#8#4'left'#3#210#0#3'top'#3#171#0#0#0#0
]); ]);

View File

@ -18,15 +18,16 @@ interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ActnList, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ActnList,
ExtCtrls, ComCtrls, Buttons, StdCtrls, ExtCtrls, ComCtrls, Buttons, StdCtrls, Contnrs,
pastree, pascal_parser_intf, pastree, pascal_parser_intf,
edit_helper, Menus; edit_helper, Menus, SynEdit, SynHighlighterXML, view_helper;
type type
{ TfClassEdit } { TfClassEdit }
TfClassEdit = class(TForm) TfClassEdit = class(TForm)
actApply : TAction;
actPropDelete: TAction; actPropDelete: TAction;
actPropEdit: TAction; actPropEdit: TAction;
actPropAdd: TAction; actPropAdd: TAction;
@ -38,6 +39,7 @@ type
Button3: TButton; Button3: TButton;
Button4: TButton; Button4: TButton;
Button5: TButton; Button5: TButton;
Button6 : TButton;
edtParent: TComboBox; edtParent: TComboBox;
edtName: TEdit; edtName: TEdit;
GroupBox1: TGroupBox; GroupBox1: TGroupBox;
@ -50,7 +52,13 @@ type
Panel1: TPanel; Panel1: TPanel;
PC: TPageControl; PC: TPageControl;
PopupMenu1: TPopupMenu; PopupMenu1: TPopupMenu;
edtSourceXSD : TSynEdit;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1: TTabSheet; TabSheet1: TTabSheet;
tsDependencies : TTabSheet;
tvDependency : TTreeView;
tsSourceXSD : TTabSheet;
procedure actApplyExecute(Sender : TObject);
procedure actOKExecute(Sender: TObject); procedure actOKExecute(Sender: TObject);
procedure actOKUpdate(Sender: TObject); procedure actOKUpdate(Sender: TObject);
procedure actPropAddExecute(Sender: TObject); procedure actPropAddExecute(Sender: TObject);
@ -58,11 +66,14 @@ type
procedure actPropEditExecute(Sender: TObject); procedure actPropEditExecute(Sender: TObject);
procedure actPropEditUpdate(Sender: TObject); procedure actPropEditUpdate(Sender: TObject);
procedure edtPropDblClick(Sender: TObject); procedure edtPropDblClick(Sender: TObject);
procedure PCChange(Sender : TObject);
private private
FUpdateType : TEditType; FUpdateType : TEditType;
FObject : TPasClassType; FObject : TPasClassType;
FSymbolTable : TwstPasTreeContainer; FSymbolTable : TwstPasTreeContainer;
FOldAncestor : TPasType; FOldAncestor : TPasType;
FApplied : Boolean;
FDependencyList : TObjectList;
private private
property UpdateType : TEditType read FUpdateType; property UpdateType : TEditType read FUpdateType;
private private
@ -70,7 +81,11 @@ type
procedure LoadProperty(APropDef : TPasProperty); procedure LoadProperty(APropDef : TPasProperty);
procedure LoadFromObject(); procedure LoadFromObject();
procedure SaveToObject(); procedure SaveToObject();
procedure ShowSourceXSD();
procedure ShowDependencies();
public public
destructor Destroy();override;
function UpdateObject( function UpdateObject(
var AObject : TPasClassType; var AObject : TPasClassType;
const AUpdateType : TEditType; const AUpdateType : TEditType;
@ -82,7 +97,8 @@ var
fClassEdit: TfClassEdit; fClassEdit: TfClassEdit;
implementation implementation
uses parserutils, ufpropedit, common_gui_utils; uses
parserutils, ufpropedit, common_gui_utils;
{ TfClassEdit } { TfClassEdit }
@ -107,6 +123,13 @@ begin
ModalResult := mrOk; ModalResult := mrOk;
end; end;
procedure TfClassEdit.actApplyExecute(Sender : TObject);
begin
SaveToObject();
if ( PC.ActivePage = tsSourceXSD ) then
ShowSourceXSD();
end;
procedure TfClassEdit.actPropDeleteExecute(Sender: TObject); procedure TfClassEdit.actPropDeleteExecute(Sender: TObject);
var var
prop : TPasProperty; prop : TPasProperty;
@ -146,6 +169,17 @@ begin
end; end;
end; end;
procedure TfClassEdit.PCChange(Sender : TObject);
begin
if ( PC.ActivePage = tsSourceXSD ) then begin
if actApply.Enabled then
actApply.Execute();
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end;
end;
procedure InternalFillList( procedure InternalFillList(
ALs : TStrings; ALs : TStrings;
AContainer : TwstPasTreeContainer AContainer : TwstPasTreeContainer
@ -207,10 +241,15 @@ begin
end; end;
procedure TfClassEdit.PrepareParentCombo(); procedure TfClassEdit.PrepareParentCombo();
var
i : PtrInt;
begin begin
edtParent.Items.BeginUpdate(); edtParent.Items.BeginUpdate();
try try
FillList(edtParent.Items,FSymbolTable); FillList(edtParent.Items,FSymbolTable);
i := edtParent.Items.IndexOfObject(FObject);
if ( i >= 0 ) then
edtParent.Items.Delete(i);
finally finally
edtParent.Items.EndUpdate(); edtParent.Items.EndUpdate();
end; end;
@ -308,6 +347,28 @@ begin
if Assigned(locObj.AncestorType) then if Assigned(locObj.AncestorType) then
locObj.AncestorType.AddRef(); locObj.AncestorType.AddRef();
end; end;
FOldAncestor := locObj.AncestorType;
FApplied := True;
end;
procedure TfClassEdit.ShowSourceXSD();
begin
edtSourceXSD.Lines.Text := XsdGenerateSourceForObject(FObject,FSymbolTable);
end;
procedure TfClassEdit.ShowDependencies();
begin
if ( FDependencyList = nil ) then
FDependencyList := TObjectList.Create(True);
FDependencyList.Clear();
FindDependencies(FObject,FSymbolTable,FDependencyList);
DrawDependencies(tvDependency,FDependencyList);
end;
destructor TfClassEdit.Destroy();
begin
FDependencyList.Free();
inherited Destroy();
end; end;
function TfClassEdit.UpdateObject( function TfClassEdit.UpdateObject(
@ -331,7 +392,7 @@ begin
try try
PrepareParentCombo(); PrepareParentCombo();
LoadFromObject(); LoadFromObject();
Result := ( ShowModal() = mrOK ); Result := FApplied or ( ShowModal() = mrOK );
if Result then begin if Result then begin
try try
SaveToObject(); SaveToObject();

View File

@ -1,16 +1,17 @@
object fEnumEdit: TfEnumEdit object fEnumEdit: TfEnumEdit
Left = 373 Left = 233
Height = 368 Height = 368
Top = 215 Top = 94
Width = 400 Width = 400
HorzScrollBar.Page = 399 HorzScrollBar.Page = 399
VertScrollBar.Page = 367 VertScrollBar.Page = 367
ActiveControl = edtName ActiveControl = PC
BorderStyle = bsSizeToolWin BorderStyle = bsSizeToolWin
Caption = 'fEnumEdit' Caption = 'fEnumEdit'
ClientHeight = 368 ClientHeight = 368
ClientWidth = 400 ClientWidth = 400
Position = poMainFormCenter Position = poMainFormCenter
LCLVersion = '0.9.25'
object PC: TPageControl object PC: TPageControl
Height = 318 Height = 318
Width = 400 Width = 400
@ -18,6 +19,8 @@ object fEnumEdit: TfEnumEdit
Align = alClient Align = alClient
TabIndex = 0 TabIndex = 0
TabOrder = 0 TabOrder = 0
OnChange = PCChange
OnPageChanged = PCChange
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'Enumeration' Caption = 'Enumeration'
ClientHeight = 292 ClientHeight = 292
@ -57,6 +60,371 @@ object fEnumEdit: TfEnumEdit
end end
end end
end end
object tsSourceXSD: TTabSheet
Caption = 'XSD'
ClientHeight = 292
ClientWidth = 392
object edtSourceXSD: TSynEdit
Left = 13
Height = 272
Top = 10
Width = 360
Anchors = [akTop, akLeft, akRight, akBottom]
Font.Height = -20
Font.Name = 'courier'
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = 42
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 2
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
Gutter.Width = 10
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
item
Command = 3
ShortCut = 38
end
item
Command = 103
ShortCut = 8230
end
item
Command = 211
ShortCut = 16422
end
item
Command = 4
ShortCut = 40
end
item
Command = 104
ShortCut = 8232
end
item
Command = 212
ShortCut = 16424
end
item
Command = 1
ShortCut = 37
end
item
Command = 101
ShortCut = 8229
end
item
Command = 5
ShortCut = 16421
end
item
Command = 105
ShortCut = 24613
end
item
Command = 2
ShortCut = 39
end
item
Command = 102
ShortCut = 8231
end
item
Command = 6
ShortCut = 16423
end
item
Command = 106
ShortCut = 24615
end
item
Command = 10
ShortCut = 34
end
item
Command = 110
ShortCut = 8226
end
item
Command = 14
ShortCut = 16418
end
item
Command = 114
ShortCut = 24610
end
item
Command = 9
ShortCut = 33
end
item
Command = 109
ShortCut = 8225
end
item
Command = 13
ShortCut = 16417
end
item
Command = 113
ShortCut = 24609
end
item
Command = 7
ShortCut = 36
end
item
Command = 107
ShortCut = 8228
end
item
Command = 15
ShortCut = 16420
end
item
Command = 115
ShortCut = 24612
end
item
Command = 8
ShortCut = 35
end
item
Command = 108
ShortCut = 8227
end
item
Command = 16
ShortCut = 16419
end
item
Command = 116
ShortCut = 24611
end
item
Command = 223
ShortCut = 45
end
item
Command = 201
ShortCut = 16429
end
item
Command = 604
ShortCut = 8237
end
item
Command = 502
ShortCut = 46
end
item
Command = 603
ShortCut = 8238
end
item
Command = 501
ShortCut = 8
end
item
Command = 501
ShortCut = 8200
end
item
Command = 504
ShortCut = 16392
end
item
Command = 601
ShortCut = 32776
end
item
Command = 602
ShortCut = 40968
end
item
Command = 509
ShortCut = 13
end
item
Command = 199
ShortCut = 16449
end
item
Command = 201
ShortCut = 16451
end
item
Command = 610
ShortCut = 24649
end
item
Command = 509
ShortCut = 16461
end
item
Command = 510
ShortCut = 16462
end
item
Command = 503
ShortCut = 16468
end
item
Command = 611
ShortCut = 24661
end
item
Command = 604
ShortCut = 16470
end
item
Command = 603
ShortCut = 16472
end
item
Command = 507
ShortCut = 16473
end
item
Command = 506
ShortCut = 24665
end
item
Command = 601
ShortCut = 16474
end
item
Command = 602
ShortCut = 24666
end
item
Command = 301
ShortCut = 16432
end
item
Command = 302
ShortCut = 16433
end
item
Command = 303
ShortCut = 16434
end
item
Command = 304
ShortCut = 16435
end
item
Command = 305
ShortCut = 16436
end
item
Command = 306
ShortCut = 16437
end
item
Command = 307
ShortCut = 16438
end
item
Command = 308
ShortCut = 16439
end
item
Command = 309
ShortCut = 16440
end
item
Command = 310
ShortCut = 16441
end
item
Command = 351
ShortCut = 24624
end
item
Command = 352
ShortCut = 24625
end
item
Command = 353
ShortCut = 24626
end
item
Command = 354
ShortCut = 24627
end
item
Command = 355
ShortCut = 24628
end
item
Command = 356
ShortCut = 24629
end
item
Command = 357
ShortCut = 24630
end
item
Command = 358
ShortCut = 24631
end
item
Command = 359
ShortCut = 24632
end
item
Command = 360
ShortCut = 24633
end
item
Command = 231
ShortCut = 24654
end
item
Command = 232
ShortCut = 24643
end
item
Command = 233
ShortCut = 24652
end
item
Command = 612
ShortCut = 9
end
item
Command = 613
ShortCut = 8201
end
item
Command = 250
ShortCut = 24642
end>
ReadOnly = True
SelectedColor.OnChange = nil
end
end
object tsDependencies: TTabSheet
Caption = 'Used by'
ClientHeight = 292
ClientWidth = 392
object tvDependency: TTreeView
Left = 12
Height = 272
Top = 10
Width = 360
Anchors = [akTop, akLeft, akRight, akBottom]
DefaultItemHeight = 15
ReadOnly = True
RightClickSelect = True
TabOrder = 0
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
end
end end
object Panel1: TPanel object Panel1: TPanel
Height = 50 Height = 50
@ -67,7 +435,7 @@ object fEnumEdit: TfEnumEdit
ClientWidth = 400 ClientWidth = 400
TabOrder = 1 TabOrder = 1
object Button1: TButton object Button1: TButton
Left = 312 Left = 224
Height = 25 Height = 25
Top = 10 Top = 10
Width = 75 Width = 75
@ -79,7 +447,7 @@ object fEnumEdit: TfEnumEdit
TabOrder = 0 TabOrder = 0
end end
object Button2: TButton object Button2: TButton
Left = 222 Left = 136
Height = 25 Height = 25
Top = 10 Top = 10
Width = 75 Width = 75
@ -89,6 +457,16 @@ object fEnumEdit: TfEnumEdit
Default = True Default = True
TabOrder = 1 TabOrder = 1
end end
object Button3: TButton
Left = 312
Height = 25
Top = 10
Width = 75
Action = actApply
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 4
TabOrder = 2
end
end end
object ActionList1: TActionList object ActionList1: TActionList
left = 248 left = 248
@ -99,5 +477,18 @@ object fEnumEdit: TfEnumEdit
OnExecute = actOKExecute OnExecute = actOKExecute
OnUpdate = actOKUpdate OnUpdate = actOKUpdate
end end
object actApply: TAction
Caption = 'Apply'
DisableIfNoHandler = True
OnExecute = actApplyExecute
OnUpdate = actOKUpdate
end
end
object SynXMLSyn1: TSynXMLSyn
DefaultFilter = 'Documents XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'
Enabled = False
WantBracesParsed = False
left = 266
top = 227
end end
end end

View File

@ -1,29 +1,96 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfEnumEdit','FORMDATA',[ LazarusResources.Add('TfEnumEdit','FORMDATA',[
'TPF0'#10'TfEnumEdit'#9'fEnumEdit'#4'Left'#3'u'#1#6'Height'#3'p'#1#3'Top'#3 'TPF0'#10'TfEnumEdit'#9'fEnumEdit'#4'Left'#3#233#0#6'Height'#3'p'#1#3'Top'#2
+#215#0#5'Width'#3#144#1#18'HorzScrollBar.Page'#3#143#1#18'VertScrollBar.Page' +'^'#5'Width'#3#144#1#18'HorzScrollBar.Page'#3#143#1#18'VertScrollBar.Page'#3
+#3'o'#1#13'ActiveControl'#7#7'edtName'#11'BorderStyle'#7#13'bsSizeToolWin'#7 +'o'#1#13'ActiveControl'#7#2'PC'#11'BorderStyle'#7#13'bsSizeToolWin'#7'Captio'
+'Caption'#6#9'fEnumEdit'#12'ClientHeight'#3'p'#1#11'ClientWidth'#3#144#1#8'P' +'n'#6#9'fEnumEdit'#12'ClientHeight'#3'p'#1#11'ClientWidth'#3#144#1#8'Positio'
+'osition'#7#16'poMainFormCenter'#0#12'TPageControl'#2'PC'#6'Height'#3'>'#1#5 +'n'#7#16'poMainFormCenter'#10'LCLVersion'#6#6'0.9.25'#0#12'TPageControl'#2'P'
+'Width'#3#144#1#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIn' +'C'#6'Height'#3'>'#1#5'Width'#3#144#1#10'ActivePage'#7#9'TabSheet1'#5'Align'
+'dex'#2#0#8'TabOrder'#2#0#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#11'Enumer' +#7#8'alClient'#8'TabIndex'#2#0#8'TabOrder'#2#0#8'OnChange'#7#8'PCChange'#13
+'ation'#12'ClientHeight'#3'$'#1#11'ClientWidth'#3#136#1#0#6'TLabel'#6'Label1' +'OnPageChanged'#7#8'PCChange'#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#11'En'
+#4'Left'#2#4#6'Height'#2#14#3'Top'#2#18#5'Width'#2#28#7'Caption'#6#4'Name'#11 +'umeration'#12'ClientHeight'#3'$'#1#11'ClientWidth'#3#136#1#0#6'TLabel'#6'La'
+'ParentColor'#8#0#0#5'TEdit'#7'edtName'#4'Left'#2'D'#6'Height'#2#23#3'Top'#2 +'bel1'#4'Left'#2#4#6'Height'#2#14#3'Top'#2#18#5'Width'#2#28#7'Caption'#6#4'N'
+#18#5'Width'#3'8'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder' +'ame'#11'ParentColor'#8#0#0#5'TEdit'#7'edtName'#4'Left'#2'D'#6'Height'#2#23#3
+#2#0#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#4#6'Height'#3#231#0#3'Top'#2'3' +'Top'#2#18#5'Width'#3'8'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'T'
+#5'Width'#3'y'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7 +'abOrder'#2#0#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#4#6'Height'#3#231#0#3
+'Caption'#6#9' Items '#12'ClientHeight'#3#213#0#11'ClientWidth'#3'u'#1#8'T' +'Top'#2'3'#5'Width'#3'y'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akB'
+'abOrder'#2#1#0#5'TMemo'#8'edtItems'#6'Height'#3#213#0#5'Width'#3'u'#1#5'Ali' +'ottom'#0#7'Caption'#6#9' Items '#12'ClientHeight'#3#213#0#11'ClientWidth'
+'gn'#7#8'alClient'#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#0#0#6'TP' +#3'u'#1#8'TabOrder'#2#1#0#5'TMemo'#8'edtItems'#6'Height'#3#213#0#5'Width'#3
+'anel'#6'Panel1'#6'Height'#2'2'#3'Top'#3'>'#1#5'Width'#3#144#1#5'Align'#7#8 +'u'#1#5'Align'#7#8'alClient'#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0
+'alBottom'#12'ClientHeight'#2'2'#11'ClientWidth'#3#144#1#8'TabOrder'#2#1#0#7 +#0#9'TTabSheet'#11'tsSourceXSD'#7'Caption'#6#3'XSD'#12'ClientHeight'#3'$'#1
+'TButton'#7'Button1'#4'Left'#3'8'#1#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K' +#11'ClientWidth'#3#136#1#0#8'TSynEdit'#12'edtSourceXSD'#4'Left'#2#13#6'Heigh'
+#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Can' +'t'#3#16#1#3'Top'#2#10#5'Width'#3'h'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'ak'
+'cel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#0#0#0#7'TBu' +'Right'#8'akBottom'#0#11'Font.Height'#2#236#9'Font.Name'#6#7'courier'#11'Par'
+'tton'#7'Button2'#4'Left'#3#222#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6 +'entColor'#8#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'*'#24'BookMarkOpt'
+'Action'#7#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.Inn' +'ions.OnChange'#13#17'Gutter.DigitCount'#2#2#22'Gutter.ShowLineNumbers'#9#22
+'erBorder'#2#4#7'Default'#9#8'TabOrder'#2#1#0#0#0#11'TActionList'#11'ActionL' +'Gutter.ShowCodeFolding'#9#12'Gutter.Width'#2#10#15'Gutter.OnChange'#13#23'G'
+'ist1'#4'left'#3#248#0#3'top'#2'x'#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK' +'utter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'a' +#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0
+'ctOKUpdate'#0#0#0#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#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#14'tsDependencies'#7'Caption'#6#7'U'
+'sed by'#12'ClientHeight'#3'$'#1#11'ClientWidth'#3#136#1#0#9'TTreeView'#12't'
+'vDependency'#4'Left'#2#12#6'Height'#3#16#1#3'Top'#2#10#5'Width'#3'h'#1#7'An'
+'chors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'DefaultItemHeight'
+#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Options'#11#17
+'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoRea'
+'dOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoSh'
+'owRoot'#11'tvoToolTips'#0#0#0#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'
+#3'>'#1#5'Width'#3#144#1#5'Align'#7#8'alBottom'#12'ClientHeight'#2'2'#11'Cli'
+'entWidth'#3#144#1#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#4'Left'#3#224#0#6
+'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0
+#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'Mod'
+'alResult'#2#2#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#136#0#6'H'
+'eight'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5
+'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#7'Default'#9#8'TabOrd'
+'er'#2#1#0#0#7'TButton'#7'Button3'#4'Left'#3'8'#1#6'Height'#2#25#3'Top'#2#10
+#5'Width'#2'K'#6'Action'#7#8'actApply'#7'Anchors'#11#5'akTop'#7'akRight'#0#25
+'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#2#0#0#0#11'TActionList'#11'Act'
+'ionList1'#4'left'#3#248#0#3'top'#2'x'#0#7'TAction'#5'actOK'#7'Caption'#6#2
+'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7
+#11'actOKUpdate'#0#0#7'TAction'#8'actApply'#7'Caption'#6#5'Apply'#18'Disable'
+'IfNoHandler'#9#9'OnExecute'#7#15'actApplyExecute'#8'OnUpdate'#7#11'actOKUpd'
+'ate'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6'MDocuments XML'
+' (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'#7'Enabled'
+#8#16'WantBracesParsed'#8#4'left'#3#10#1#3'top'#3#227#0#0#0#0
]); ]);

View File

@ -18,37 +18,52 @@ interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
ComCtrls, ExtCtrls, ActnList, Buttons, ComCtrls, ExtCtrls, ActnList, Buttons, Contnrs,
pastree, pascal_parser_intf, edit_helper; pastree, pascal_parser_intf, edit_helper, SynEdit, SynHighlighterXML;
type type
{ TfEnumEdit } { TfEnumEdit }
TfEnumEdit = class(TForm) TfEnumEdit = class(TForm)
actApply : TAction;
actOK: TAction; actOK: TAction;
ActionList1: TActionList; ActionList1: TActionList;
Button1: TButton; Button1: TButton;
Button2: TButton; Button2: TButton;
Button3 : TButton;
edtName: TEdit; edtName: TEdit;
edtSourceXSD : TSynEdit;
GroupBox1: TGroupBox; GroupBox1: TGroupBox;
Label1: TLabel; Label1: TLabel;
edtItems: TMemo; edtItems: TMemo;
PC: TPageControl; PC: TPageControl;
Panel1: TPanel; Panel1: TPanel;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1: TTabSheet; TabSheet1: TTabSheet;
tsDependencies : TTabSheet;
tsSourceXSD : TTabSheet;
tvDependency : TTreeView;
procedure actApplyExecute(Sender : TObject);
procedure actOKExecute(Sender: TObject); procedure actOKExecute(Sender: TObject);
procedure actOKUpdate(Sender: TObject); procedure actOKUpdate(Sender: TObject);
procedure PCChange(Sender : TObject);
private private
FUpdateType : TEditType; FUpdateType : TEditType;
FObject : TPasEnumType; FObject : TPasEnumType;
FSymbolTable : TwstPasTreeContainer; FSymbolTable : TwstPasTreeContainer;
FApplied : Boolean;
FDependencyList : TObjectList;
private private
property UpdateType : TEditType read FUpdateType; property UpdateType : TEditType read FUpdateType;
private private
procedure LoadFromObject(); procedure LoadFromObject();
procedure SaveToObject(); procedure SaveToObject();
procedure ShowSourceXSD();
procedure ShowDependencies();
public public
destructor Destroy();override;
function UpdateObject( function UpdateObject(
var AObject : TPasEnumType; var AObject : TPasEnumType;
const AUpdateType : TEditType; const AUpdateType : TEditType;
@ -60,7 +75,7 @@ var
fEnumEdit: TfEnumEdit; fEnumEdit: TfEnumEdit;
implementation implementation
uses parserutils; uses parserutils, view_helper;
function ParseEnum( function ParseEnum(
const AName : string; const AName : string;
@ -117,11 +132,29 @@ begin
( not IsStrEmpty(edtItems.Lines.Text) ); ( not IsStrEmpty(edtItems.Lines.Text) );
end; end;
procedure TfEnumEdit.PCChange(Sender : TObject);
begin
if ( PC.ActivePage = tsSourceXSD ) then begin
if actApply.Enabled then
actApply.Execute();
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end;
end;
procedure TfEnumEdit.actOKExecute(Sender: TObject); procedure TfEnumEdit.actOKExecute(Sender: TObject);
begin begin
ModalResult := mrOK; ModalResult := mrOK;
end; end;
procedure TfEnumEdit.actApplyExecute(Sender : TObject);
begin
SaveToObject();
if ( PC.ActivePage = tsSourceXSD ) then
ShowSourceXSD();
end;
procedure TfEnumEdit.LoadFromObject(); procedure TfEnumEdit.LoadFromObject();
var var
i : Integer; i : Integer;
@ -145,13 +178,34 @@ var
locObj : TPasEnumType; locObj : TPasEnumType;
begin begin
locObj := nil; locObj := nil;
if ( UpdateType = etCreate ) then begin if ( UpdateType = etCreate ) and ( FObject = nil ) then begin
locObj := ParseEnum(edtName.Text,edtItems.Lines,nil,FSymbolTable); locObj := ParseEnum(edtName.Text,edtItems.Lines,nil,FSymbolTable);
//FreeAndNil(FObject); //FreeAndNil(FObject);
FObject := locObj; FObject := locObj;
end else begin end else begin
ParseEnum(edtName.Text,edtItems.Lines,FObject,FSymbolTable); ParseEnum(edtName.Text,edtItems.Lines,FObject,FSymbolTable);
end; end;
FApplied := True;
end;
procedure TfEnumEdit.ShowSourceXSD();
begin
edtSourceXSD.Lines.Text := XsdGenerateSourceForObject(FObject,FSymbolTable);
end;
procedure TfEnumEdit.ShowDependencies();
begin
if ( FDependencyList = nil ) then
FDependencyList := TObjectList.Create(True);
FDependencyList.Clear();
FindDependencies(FObject,FSymbolTable,FDependencyList);
DrawDependencies(tvDependency,FDependencyList);
end;
destructor TfEnumEdit.Destroy();
begin
FDependencyList.Free();
inherited Destroy();
end; end;
function TfEnumEdit.UpdateObject( function TfEnumEdit.UpdateObject(
@ -164,7 +218,7 @@ begin
FUpdateType := AUpdateType; FUpdateType := AUpdateType;
FObject := AObject; FObject := AObject;
LoadFromObject(); LoadFromObject();
Result := ( ShowModal() = mrOK ); Result := FApplied or ( ShowModal() = mrOK );
if Result then begin if Result then begin
SaveToObject(); SaveToObject();
if ( AUpdateType = etCreate ) then begin if ( AUpdateType = etCreate ) then begin

View File

@ -1,22 +1,25 @@
object fRecordEdit: TfRecordEdit object fRecordEdit: TfRecordEdit
Left = 701 Left = 859
Height = 542 Height = 542
Top = 128 Top = 104
Width = 517 Width = 517
HorzScrollBar.Page = 516 HorzScrollBar.Page = 516
VertScrollBar.Page = 541 VertScrollBar.Page = 541
ActiveControl = edtName ActiveControl = PC
Caption = 'fRecordEdit' Caption = 'fRecordEdit'
ClientHeight = 542 ClientHeight = 542
ClientWidth = 517 ClientWidth = 517
Position = poDesktopCenter Position = poDesktopCenter
object PageControl1: TPageControl LCLVersion = '0.9.25'
object PC: TPageControl
Height = 492 Height = 492
Width = 517 Width = 517
ActivePage = TabSheet1 ActivePage = TabSheet1
Align = alClient Align = alClient
TabIndex = 0 TabIndex = 0
TabOrder = 0 TabOrder = 0
OnChange = PCChange
OnPageChanged = PCChange
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'Record Type' Caption = 'Record Type'
ClientHeight = 466 ClientHeight = 466
@ -100,6 +103,368 @@ object fRecordEdit: TfRecordEdit
TabOrder = 4 TabOrder = 4
end end
end end
object tsSourceXSD: TTabSheet
Caption = 'XSD'
ClientHeight = 466
ClientWidth = 509
object edtSourceXSD: TSynEdit
Left = 12
Height = 432
Top = 18
Width = 480
Anchors = [akTop, akLeft, akRight, akBottom]
Font.Height = -20
Font.Name = 'courier'
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = 42
Gutter.DigitCount = 2
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
Gutter.Width = 10
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
item
Command = 3
ShortCut = 38
end
item
Command = 103
ShortCut = 8230
end
item
Command = 211
ShortCut = 16422
end
item
Command = 4
ShortCut = 40
end
item
Command = 104
ShortCut = 8232
end
item
Command = 212
ShortCut = 16424
end
item
Command = 1
ShortCut = 37
end
item
Command = 101
ShortCut = 8229
end
item
Command = 5
ShortCut = 16421
end
item
Command = 105
ShortCut = 24613
end
item
Command = 2
ShortCut = 39
end
item
Command = 102
ShortCut = 8231
end
item
Command = 6
ShortCut = 16423
end
item
Command = 106
ShortCut = 24615
end
item
Command = 10
ShortCut = 34
end
item
Command = 110
ShortCut = 8226
end
item
Command = 14
ShortCut = 16418
end
item
Command = 114
ShortCut = 24610
end
item
Command = 9
ShortCut = 33
end
item
Command = 109
ShortCut = 8225
end
item
Command = 13
ShortCut = 16417
end
item
Command = 113
ShortCut = 24609
end
item
Command = 7
ShortCut = 36
end
item
Command = 107
ShortCut = 8228
end
item
Command = 15
ShortCut = 16420
end
item
Command = 115
ShortCut = 24612
end
item
Command = 8
ShortCut = 35
end
item
Command = 108
ShortCut = 8227
end
item
Command = 16
ShortCut = 16419
end
item
Command = 116
ShortCut = 24611
end
item
Command = 223
ShortCut = 45
end
item
Command = 201
ShortCut = 16429
end
item
Command = 604
ShortCut = 8237
end
item
Command = 502
ShortCut = 46
end
item
Command = 603
ShortCut = 8238
end
item
Command = 501
ShortCut = 8
end
item
Command = 501
ShortCut = 8200
end
item
Command = 504
ShortCut = 16392
end
item
Command = 601
ShortCut = 32776
end
item
Command = 602
ShortCut = 40968
end
item
Command = 509
ShortCut = 13
end
item
Command = 199
ShortCut = 16449
end
item
Command = 201
ShortCut = 16451
end
item
Command = 610
ShortCut = 24649
end
item
Command = 509
ShortCut = 16461
end
item
Command = 510
ShortCut = 16462
end
item
Command = 503
ShortCut = 16468
end
item
Command = 611
ShortCut = 24661
end
item
Command = 604
ShortCut = 16470
end
item
Command = 603
ShortCut = 16472
end
item
Command = 507
ShortCut = 16473
end
item
Command = 506
ShortCut = 24665
end
item
Command = 601
ShortCut = 16474
end
item
Command = 602
ShortCut = 24666
end
item
Command = 301
ShortCut = 16432
end
item
Command = 302
ShortCut = 16433
end
item
Command = 303
ShortCut = 16434
end
item
Command = 304
ShortCut = 16435
end
item
Command = 305
ShortCut = 16436
end
item
Command = 306
ShortCut = 16437
end
item
Command = 307
ShortCut = 16438
end
item
Command = 308
ShortCut = 16439
end
item
Command = 309
ShortCut = 16440
end
item
Command = 310
ShortCut = 16441
end
item
Command = 351
ShortCut = 24624
end
item
Command = 352
ShortCut = 24625
end
item
Command = 353
ShortCut = 24626
end
item
Command = 354
ShortCut = 24627
end
item
Command = 355
ShortCut = 24628
end
item
Command = 356
ShortCut = 24629
end
item
Command = 357
ShortCut = 24630
end
item
Command = 358
ShortCut = 24631
end
item
Command = 359
ShortCut = 24632
end
item
Command = 360
ShortCut = 24633
end
item
Command = 231
ShortCut = 24654
end
item
Command = 232
ShortCut = 24643
end
item
Command = 233
ShortCut = 24652
end
item
Command = 612
ShortCut = 9
end
item
Command = 613
ShortCut = 8201
end
item
Command = 250
ShortCut = 24642
end>
ReadOnly = True
end
end
object tsDependencies: TTabSheet
Caption = 'Used by'
ClientHeight = 466
ClientWidth = 509
object tvDependency: TTreeView
Left = 20
Height = 433
Top = 18
Width = 464
Anchors = [akTop, akLeft, akRight, akBottom]
DefaultItemHeight = 15
ReadOnly = True
RightClickSelect = True
TabOrder = 0
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
end
end end
object Panel1: TPanel object Panel1: TPanel
Height = 50 Height = 50
@ -110,9 +475,9 @@ object fRecordEdit: TfRecordEdit
ClientWidth = 517 ClientWidth = 517
TabOrder = 1 TabOrder = 1
object Button1: TButton object Button1: TButton
Left = 328 Left = 253
Height = 25 Height = 25
Top = 13 Top = 10
Width = 75 Width = 75
Action = actOK Action = actOK
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@ -120,9 +485,9 @@ object fRecordEdit: TfRecordEdit
TabOrder = 0 TabOrder = 0
end end
object Button2: TButton object Button2: TButton
Left = 416 Left = 341
Height = 25 Height = 25
Top = 13 Top = 10
Width = 75 Width = 75
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
@ -131,6 +496,15 @@ object fRecordEdit: TfRecordEdit
ModalResult = 2 ModalResult = 2
TabOrder = 1 TabOrder = 1
end end
object Button6: TButton
Left = 429
Height = 25
Top = 10
Width = 75
Action = actApply
Anchors = [akTop, akRight]
TabOrder = 2
end
end end
object ActionList1: TActionList object ActionList1: TActionList
left = 128 left = 128
@ -158,6 +532,12 @@ object fRecordEdit: TfRecordEdit
OnExecute = actPropDeleteExecute OnExecute = actPropDeleteExecute
OnUpdate = actPropEditUpdate OnUpdate = actPropEditUpdate
end end
object actApply: TAction
Caption = 'Apply'
DisableIfNoHandler = True
OnExecute = actApplyExecute
OnUpdate = actOKUpdate
end
end end
object PopupMenu1: TPopupMenu object PopupMenu1: TPopupMenu
left = 112 left = 112
@ -175,4 +555,11 @@ object fRecordEdit: TfRecordEdit
OnClick = actPropDeleteExecute OnClick = actPropDeleteExecute
end end
end end
object SynXMLSyn1: TSynXMLSyn
DefaultFilter = 'Documents XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'
Enabled = False
WantBracesParsed = False
left = 238
top = 199
end
end end

View File

@ -1,51 +1,115 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus } { Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfRecordEdit','FORMDATA',[ LazarusResources.Add('TfRecordEdit','FORMDATA',[
'TPF0'#12'TfRecordEdit'#11'fRecordEdit'#4'Left'#3#189#2#6'Height'#3#30#2#3'To' 'TPF0'#12'TfRecordEdit'#11'fRecordEdit'#4'Left'#3'['#3#6'Height'#3#30#2#3'Top'
+'p'#3#128#0#5'Width'#3#5#2#18'HorzScrollBar.Page'#3#4#2#18'VertScrollBar.Pag' +#2'h'#5'Width'#3#5#2#18'HorzScrollBar.Page'#3#4#2#18'VertScrollBar.Page'#3#29
+'e'#3#29#2#13'ActiveControl'#7#7'edtName'#7'Caption'#6#11'fRecordEdit'#12'Cl' +#2#13'ActiveControl'#7#2'PC'#7'Caption'#6#11'fRecordEdit'#12'ClientHeight'#3
+'ientHeight'#3#30#2#11'ClientWidth'#3#5#2#8'Position'#7#15'poDesktopCenter'#0 +#30#2#11'ClientWidth'#3#5#2#8'Position'#7#15'poDesktopCenter'#10'LCLVersion'
+#12'TPageControl'#12'PageControl1'#6'Height'#3#236#1#5'Width'#3#5#2#10'Activ' +#6#6'0.9.25'#0#12'TPageControl'#2'PC'#6'Height'#3#236#1#5'Width'#3#5#2#10'Ac'
+'ePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8'TabOrder'#2#0 +'tivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8'TabOrder'
+#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#11'Record Type'#12'ClientHeight'#3 +#2#0#8'OnChange'#7#8'PCChange'#13'OnPageChanged'#7#8'PCChange'#0#9'TTabSheet'
+#210#1#11'ClientWidth'#3#253#1#0#6'TLabel'#6'Label1'#4'Left'#2#20#6'Height'#2 +#9'TabSheet1'#7'Caption'#6#11'Record Type'#12'ClientHeight'#3#210#1#11'Clien'
+#14#3'Top'#2'"'#5'Width'#2#28#7'Caption'#6#4'Name'#11'ParentColor'#8#0#0#5'T' +'tWidth'#3#253#1#0#6'TLabel'#6'Label1'#4'Left'#2#20#6'Height'#2#14#3'Top'#2
+'Edit'#7'edtName'#4'Left'#2'L'#6'Height'#2#23#3'Top'#2'"'#5'Width'#3#153#1#7 +'"'#5'Width'#2#28#7'Caption'#6#4'Name'#11'ParentColor'#8#0#0#5'TEdit'#7'edtN'
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#9'TGroupBox' +'ame'#4'Left'#2'L'#6'Height'#2#23#3'Top'#2'"'#5'Width'#3#153#1#7'Anchors'#11
+#9'GroupBox1'#4'Left'#2#20#6'Height'#3'@'#1#3'Top'#2'R'#5'Width'#3#209#1#7'A' +#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#9'TGroupBox'#9'GroupBox'
+'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#10' Fi' +'1'#4'Left'#2#20#6'Height'#3'@'#1#3'Top'#2'R'#5'Width'#3#209#1#7'Anchors'#11
+'elds '#12'ClientHeight'#3'.'#1#11'ClientWidth'#3#205#1#8'TabOrder'#2#1#0#9 +#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#10' Fields '#12
+'TListView'#9'edtFields'#6'Height'#3'.'#1#5'Width'#3#205#1#5'Align'#7#8'alCl' +'ClientHeight'#3'.'#1#11'ClientWidth'#3#205#1#8'TabOrder'#2#1#0#9'TListView'
+'ient'#7'Columns'#14#1#7'Caption'#6#4'Name'#5'Width'#3#200#0#0#1#7'Caption'#6 +#9'edtFields'#6'Height'#3'.'#1#5'Width'#3#205#1#5'Align'#7#8'alClient'#7'Col'
+#4'Type'#5'Width'#3#190#0#0#1#7'Caption'#6#9'Attribute'#5'Width'#2'<'#0#0#9 +'umns'#14#1#7'Caption'#6#4'Name'#5'Width'#3#200#0#0#1#7'Caption'#6#4'Type'#5
+'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'#0#0#0 +'Width'#3#190#0#0#1#7'Caption'#6#9'Attribute'#5'Width'#2'<'#0#0#9'PopupMenu'
+#7'TButton'#7'Button3'#4'Left'#2#20#6'Height'#2#25#3'Top'#3#162#1#5'Width'#2 +#7#10'PopupMenu1'#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'#0#0#0#7'TButton'
+'d'#6'Action'#7#10'actPropAdd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'Bord' +#7'Button3'#4'Left'#2#20#6'Height'#2#25#3'Top'#3#162#1#5'Width'#2'd'#6'Actio'
+'erSpacing.InnerBorder'#2#4#8'TabOrder'#2#2#0#0#7'TButton'#7'Button4'#4'Left' +'n'#7#10'actPropAdd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.'
+#3#132#0#6'Height'#2#25#3'Top'#3#162#1#5'Width'#2'd'#6'Action'#7#11'actPropE' +'InnerBorder'#2#4#8'TabOrder'#2#2#0#0#7'TButton'#7'Button4'#4'Left'#3#132#0#6
+'dit'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4 +'Height'#2#25#3'Top'#3#162#1#5'Width'#2'd'#6'Action'#7#11'actPropEdit'#7'Anc'
+#8'TabOrder'#2#3#0#0#7'TButton'#7'Button5'#4'Left'#3#244#0#6'Height'#2#25#3 +'hors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrd'
+'Top'#3#162#1#5'Width'#2'd'#6'Action'#7#13'actPropDelete'#7'Anchors'#11#6'ak' +'er'#2#3#0#0#7'TButton'#7'Button5'#4'Left'#3#244#0#6'Height'#2#25#3'Top'#3
+'Left'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#4#0#0#0 +#162#1#5'Width'#2'd'#6'Action'#7#13'actPropDelete'#7'Anchors'#11#6'akLeft'#8
+#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'#3#236#1#5'Width'#3#5#2#5'Align' +'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#4#0#0#0#9'TTabS'
+#7#8'alBottom'#12'ClientHeight'#2'2'#11'ClientWidth'#3#5#2#8'TabOrder'#2#1#0 +'heet'#11'tsSourceXSD'#7'Caption'#6#3'XSD'#12'ClientHeight'#3#210#1#11'Clien'
+#7'TButton'#7'Button1'#4'Left'#3'H'#1#6'Height'#2#25#3'Top'#2#13#5'Width'#2 +'tWidth'#3#253#1#0#8'TSynEdit'#12'edtSourceXSD'#4'Left'#2#12#6'Height'#3#176
+'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacin' +#1#3'Top'#2#18#5'Width'#3#224#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8
+'g.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#160#1 +'akBottom'#0#11'Font.Height'#2#236#9'Font.Name'#6#7'courier'#11'ParentColor'
+#6'Height'#2#25#3'Top'#2#13#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0 +#8#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'*'#17'Gutter.DigitCount'#2#2
+#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'Mod' +#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#12'Gutter.Width'#2
+'alResult'#2#2#8'TabOrder'#2#1#0#0#0#11'TActionList'#11'ActionList1'#4'left' +#10#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Key'
+#3#128#0#3'top'#3#208#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableI' +'strokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCu'
+'fNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate' +'t'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'Shor'
+#0#0#7'TAction'#10'actPropAdd'#7'Caption'#6#12'New Property'#18'DisableIfNoH' +'tCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'S'
+'andler'#9#9'OnExecute'#7#17'actPropAddExecute'#0#0#7'TAction'#11'actPropEdi' +'hortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'Sh'
+'t'#7'Caption'#6#13'Edit Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18 +'ortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'Sh'
+'actPropEditExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#13'a' +'ortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'Sh'
+'ctPropDelete'#7'Caption'#6#15'Delete Property'#18'DisableIfNoHandler'#9#9'O' +'ortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8
+'nExecute'#7#20'actPropDeleteExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0 +'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8
+#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#2'p'#3'top'#3#0#1#0#9'TMenuItem'#9 +'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8
+'MenuItem1'#6'Action'#7#10'actPropAdd'#7'OnClick'#7#17'actPropAddExecute'#0#0 +'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'S'
+#9'TMenuItem'#9'MenuItem2'#6'Action'#7#11'actPropEdit'#7'OnClick'#7#18'actPr' +'hortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8
+'opEditExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#13'actPropDelete'#7 +'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'S'
+'OnClick'#7#20'actPropDeleteExecute'#0#0#0#0 +'hortCut'#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'S'
+'hortCut'#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'Comman'
+'d'#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'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
+'nd'#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'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC'
+'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S'
+'hortCut'#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'Comman'
+'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C'
+'ommand'#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'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu'
+'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh'
+'ortCut'#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'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
+'and'#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#8'ReadOnly'#9#0#0#0#9'TTabSheet'#14'tsDependencies'#7'Caption'#6#7'Used'
+' by'#12'ClientHeight'#3#210#1#11'ClientWidth'#3#253#1#0#9'TTreeView'#12'tvD'
+'ependency'#4'Left'#2#20#6'Height'#3#177#1#3'Top'#2#18#5'Width'#3#208#1#7'An'
+'chors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'DefaultItemHeight'
+#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Options'#11#17
+'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoRea'
+'dOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoSh'
+'owRoot'#11'tvoToolTips'#0#0#0#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'
+#3#236#1#5'Width'#3#5#2#5'Align'#7#8'alBottom'#12'ClientHeight'#2'2'#11'Clie'
+'ntWidth'#3#5#2#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#4'Left'#3#253#0#6'He'
+'ight'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5'a'
+'kTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7
+'TButton'#7'Button2'#4'Left'#3'U'#1#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'
+#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Can'
+'cel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#1#0#0#7'TBu'
+'tton'#7'Button6'#4'Left'#3#173#1#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6
+'Action'#7#8'actApply'#7'Anchors'#11#5'akTop'#7'akRight'#0#8'TabOrder'#2#2#0
+#0#0#11'TActionList'#11'ActionList1'#4'left'#3#128#0#3'top'#3#208#0#0#7'TAct'
+'ion'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12
+'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'#10'actPropAdd'#7
+'Caption'#6#12'New Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actP'
+'ropAddExecute'#0#0#7'TAction'#11'actPropEdit'#7'Caption'#6#13'Edit Property'
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#18'actPropEditExecute'#8'OnUpdate'#7
+#17'actPropEditUpdate'#0#0#7'TAction'#13'actPropDelete'#7'Caption'#6#15'Dele'
+'te Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actPropDeleteExecut'
+'e'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#8'actApply'#7'Caption'
+#6#5'Apply'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actApplyExecute'#8'On'
+'Update'#7#11'actOKUpdate'#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#2'p'#3
+'top'#3#0#1#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#10'actPropAdd'#7'OnClick'
+#7#17'actPropAddExecute'#0#0#9'TMenuItem'#9'MenuItem2'#6'Action'#7#11'actPro'
+'pEdit'#7'OnClick'#7#18'actPropEditExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6
+'Action'#7#13'actPropDelete'#7'OnClick'#7#20'actPropDeleteExecute'#0#0#0#10
+'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6'MDocuments XML (*.xml,*.xsd,'
+'*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'#7'Enabled'#8#16'WantBra'
+'cesParsed'#8#4'left'#3#238#0#3'top'#3#199#0#0#0#0
]); ]);

View File

@ -18,15 +18,16 @@ interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,
ExtCtrls, StdCtrls, ActnList, Menus, ExtCtrls, StdCtrls, ActnList, Menus, Contnrs,
pastree, pascal_parser_intf, pastree, pascal_parser_intf,
edit_helper; edit_helper, SynHighlighterXML, SynEdit;
type type
{ TfRecordEdit } { TfRecordEdit }
TfRecordEdit = class(TForm) TfRecordEdit = class(TForm)
actApply : TAction;
actPropAdd : TAction; actPropAdd : TAction;
actPropEdit : TAction; actPropEdit : TAction;
actPropDelete : TAction; actPropDelete : TAction;
@ -37,34 +38,48 @@ type
Button3 : TButton; Button3 : TButton;
Button4 : TButton; Button4 : TButton;
Button5 : TButton; Button5 : TButton;
Button6 : TButton;
edtName : TEdit; edtName : TEdit;
edtSourceXSD : TSynEdit;
GroupBox1 : TGroupBox; GroupBox1 : TGroupBox;
Label1 : TLabel; Label1 : TLabel;
edtFields : TListView; edtFields : TListView;
MenuItem1 : TMenuItem; MenuItem1 : TMenuItem;
MenuItem2 : TMenuItem; MenuItem2 : TMenuItem;
MenuItem3 : TMenuItem; MenuItem3 : TMenuItem;
PageControl1 : TPageControl; PC : TPageControl;
Panel1 : TPanel; Panel1 : TPanel;
PopupMenu1 : TPopupMenu; PopupMenu1 : TPopupMenu;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1 : TTabSheet; TabSheet1 : TTabSheet;
tsDependencies : TTabSheet;
tsSourceXSD : TTabSheet;
tvDependency : TTreeView;
procedure actApplyExecute(Sender : TObject);
procedure actOKExecute(Sender : TObject); procedure actOKExecute(Sender : TObject);
procedure actOKUpdate(Sender : TObject); procedure actOKUpdate(Sender : TObject);
procedure actPropAddExecute(Sender : TObject); procedure actPropAddExecute(Sender : TObject);
procedure actPropDeleteExecute(Sender : TObject); procedure actPropDeleteExecute(Sender : TObject);
procedure actPropEditExecute(Sender : TObject); procedure actPropEditExecute(Sender : TObject);
procedure actPropEditUpdate(Sender : TObject); procedure actPropEditUpdate(Sender : TObject);
procedure PCChange(Sender : TObject);
private private
FUpdateType : TEditType; FUpdateType : TEditType;
FObject : TPasRecordType; FObject : TPasRecordType;
FSymbolTable : TwstPasTreeContainer; FSymbolTable : TwstPasTreeContainer;
FApplied : Boolean;
FDependencyList : TObjectList;
private private
property UpdateType : TEditType read FUpdateType; property UpdateType : TEditType read FUpdateType;
private private
procedure LoadField(AFieldDef : TPasVariable); procedure LoadField(AFieldDef : TPasVariable);
procedure LoadFromObject(); procedure LoadFromObject();
procedure SaveToObject(); procedure SaveToObject();
procedure ShowSourceXSD();
procedure ShowDependencies();
public public
destructor Destroy();override;
function UpdateObject( function UpdateObject(
var AObject : TPasRecordType; var AObject : TPasRecordType;
const AUpdateType : TEditType; const AUpdateType : TEditType;
@ -76,7 +91,7 @@ var
fRecordEdit : TfRecordEdit; fRecordEdit : TfRecordEdit;
implementation implementation
uses common_gui_utils, parserutils, ufpropedit; uses common_gui_utils, parserutils, ufpropedit, view_helper;
{ TfRecordEdit } { TfRecordEdit }
@ -125,11 +140,29 @@ begin
TAction(Sender).Enabled := Assigned(edtFields.ItemFocused); TAction(Sender).Enabled := Assigned(edtFields.ItemFocused);
end; end;
procedure TfRecordEdit.PCChange(Sender : TObject);
begin
if ( PC.ActivePage = tsSourceXSD ) then begin
if actApply.Enabled then
actApply.Execute();
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end;
end;
procedure TfRecordEdit.actOKExecute(Sender : TObject); procedure TfRecordEdit.actOKExecute(Sender : TObject);
begin begin
ModalResult := mrOk; ModalResult := mrOk;
end; end;
procedure TfRecordEdit.actApplyExecute(Sender : TObject);
begin
SaveToObject();
if ( PC.ActivePage = tsSourceXSD ) then
ShowSourceXSD();
end;
procedure TfRecordEdit.LoadField(AFieldDef : TPasVariable); procedure TfRecordEdit.LoadField(AFieldDef : TPasVariable);
var var
itm : TListItem; itm : TListItem;
@ -185,6 +218,27 @@ begin
locObj := FObject; locObj := FObject;
locObj.Name := typIntName; locObj.Name := typIntName;
FSymbolTable.RegisterExternalAlias(locObj,typExtName); FSymbolTable.RegisterExternalAlias(locObj,typExtName);
FApplied := True;
end;
procedure TfRecordEdit.ShowSourceXSD();
begin
edtSourceXSD.Lines.Text := XsdGenerateSourceForObject(FObject,FSymbolTable);
end;
procedure TfRecordEdit.ShowDependencies();
begin
if ( FDependencyList = nil ) then
FDependencyList := TObjectList.Create(True);
FDependencyList.Clear();
FindDependencies(FObject,FSymbolTable,FDependencyList);
DrawDependencies(tvDependency,FDependencyList);
end;
destructor TfRecordEdit.Destroy();
begin
FDependencyList.Free();
inherited Destroy();
end; end;
function TfRecordEdit.UpdateObject( function TfRecordEdit.UpdateObject(
@ -204,7 +258,7 @@ begin
end; end;
try try
LoadFromObject(); LoadFromObject();
Result := ( ShowModal() = mrOK ); Result := FApplied or ( ShowModal() = mrOK );
if Result then begin if Result then begin
try try
SaveToObject(); SaveToObject();

View File

@ -1,22 +1,27 @@
object fTypeAliasEdit: TfTypeAliasEdit object fTypeAliasEdit: TfTypeAliasEdit
Left = 693 Left = 682
Height = 300 Height = 300
Top = 186 Top = 91
Width = 400 Width = 400
HorzScrollBar.Page = 399 HorzScrollBar.Page = 399
VertScrollBar.Page = 299 VertScrollBar.Page = 299
ActiveControl = Button1 ActiveControl = PC
BorderStyle = bsSizeToolWin BorderStyle = bsSizeToolWin
Caption = 'fTypeAliasEdit' Caption = 'fTypeAliasEdit'
ClientHeight = 300
ClientWidth = 400
Position = poScreenCenter Position = poScreenCenter
LCLVersion = '0.9.25'
object Panel1: TPanel object Panel1: TPanel
Height = 50 Height = 50
Top = 250 Top = 250
Width = 400 Width = 400
Align = alBottom Align = alBottom
ClientHeight = 50
ClientWidth = 400
TabOrder = 0 TabOrder = 0
object Button1: TButton object Button1: TButton
Left = 232 Left = 147
Height = 25 Height = 25
Top = 14 Top = 14
Width = 75 Width = 75
@ -26,7 +31,7 @@ object fTypeAliasEdit: TfTypeAliasEdit
TabOrder = 0 TabOrder = 0
end end
object Button2: TButton object Button2: TButton
Left = 312 Left = 229
Height = 25 Height = 25
Top = 14 Top = 14
Width = 75 Width = 75
@ -34,25 +39,39 @@ object fTypeAliasEdit: TfTypeAliasEdit
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
Cancel = True Cancel = True
Caption = 'Cancel' Caption = 'Cancel'
ModalResult = 2
TabOrder = 1 TabOrder = 1
end end
object Button3: TButton
Left = 311
Height = 25
Top = 14
Width = 75
Action = actApply
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 4
TabOrder = 2
end end
object PageControl1: TPageControl end
object PC: TPageControl
Height = 250 Height = 250
Width = 400 Width = 400
ActivePage = TabSheet1 ActivePage = TabSheet1
Align = alClient Align = alClient
TabIndex = 0 TabIndex = 0
TabOrder = 1 TabOrder = 1
OnChange = PCChange
OnPageChanged = PCChange
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'Type Alias' Caption = 'Type Alias'
ClientHeight = 224
ClientWidth = 392
object Label1: TLabel object Label1: TLabel
Left = 20 Left = 20
Height = 14 Height = 14
Top = 26 Top = 26
Width = 28 Width = 28
Caption = 'Name' Caption = 'Name'
Color = clNone
ParentColor = False ParentColor = False
end end
object Label2: TLabel object Label2: TLabel
@ -61,14 +80,13 @@ object fTypeAliasEdit: TfTypeAliasEdit
Top = 114 Top = 114
Width = 51 Width = 51
Caption = 'Base Type' Caption = 'Base Type'
Color = clNone
ParentColor = False ParentColor = False
end end
object edtName: TEdit object edtName: TEdit
Left = 20 Left = 20
Height = 23 Height = 23
Top = 42 Top = 42
Width = 352 Width = 344
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
TabOrder = 0 TabOrder = 0
end end
@ -76,7 +94,7 @@ object fTypeAliasEdit: TfTypeAliasEdit
Left = 20 Left = 20
Height = 21 Height = 21
Top = 130 Top = 130
Width = 352 Width = 344
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
ItemHeight = 13 ItemHeight = 13
@ -85,6 +103,371 @@ object fTypeAliasEdit: TfTypeAliasEdit
TabOrder = 1 TabOrder = 1
end end
end end
object tsSourceXSD: TTabSheet
Caption = 'XSD'
ClientHeight = 224
ClientWidth = 392
object edtSourceXSD: TSynEdit
Left = 13
Height = 200
Top = 10
Width = 360
Anchors = [akTop, akLeft, akRight, akBottom]
Font.Height = -20
Font.Name = 'courier'
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = 42
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 2
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
Gutter.Width = 10
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
item
Command = 3
ShortCut = 38
end
item
Command = 103
ShortCut = 8230
end
item
Command = 211
ShortCut = 16422
end
item
Command = 4
ShortCut = 40
end
item
Command = 104
ShortCut = 8232
end
item
Command = 212
ShortCut = 16424
end
item
Command = 1
ShortCut = 37
end
item
Command = 101
ShortCut = 8229
end
item
Command = 5
ShortCut = 16421
end
item
Command = 105
ShortCut = 24613
end
item
Command = 2
ShortCut = 39
end
item
Command = 102
ShortCut = 8231
end
item
Command = 6
ShortCut = 16423
end
item
Command = 106
ShortCut = 24615
end
item
Command = 10
ShortCut = 34
end
item
Command = 110
ShortCut = 8226
end
item
Command = 14
ShortCut = 16418
end
item
Command = 114
ShortCut = 24610
end
item
Command = 9
ShortCut = 33
end
item
Command = 109
ShortCut = 8225
end
item
Command = 13
ShortCut = 16417
end
item
Command = 113
ShortCut = 24609
end
item
Command = 7
ShortCut = 36
end
item
Command = 107
ShortCut = 8228
end
item
Command = 15
ShortCut = 16420
end
item
Command = 115
ShortCut = 24612
end
item
Command = 8
ShortCut = 35
end
item
Command = 108
ShortCut = 8227
end
item
Command = 16
ShortCut = 16419
end
item
Command = 116
ShortCut = 24611
end
item
Command = 223
ShortCut = 45
end
item
Command = 201
ShortCut = 16429
end
item
Command = 604
ShortCut = 8237
end
item
Command = 502
ShortCut = 46
end
item
Command = 603
ShortCut = 8238
end
item
Command = 501
ShortCut = 8
end
item
Command = 501
ShortCut = 8200
end
item
Command = 504
ShortCut = 16392
end
item
Command = 601
ShortCut = 32776
end
item
Command = 602
ShortCut = 40968
end
item
Command = 509
ShortCut = 13
end
item
Command = 199
ShortCut = 16449
end
item
Command = 201
ShortCut = 16451
end
item
Command = 610
ShortCut = 24649
end
item
Command = 509
ShortCut = 16461
end
item
Command = 510
ShortCut = 16462
end
item
Command = 503
ShortCut = 16468
end
item
Command = 611
ShortCut = 24661
end
item
Command = 604
ShortCut = 16470
end
item
Command = 603
ShortCut = 16472
end
item
Command = 507
ShortCut = 16473
end
item
Command = 506
ShortCut = 24665
end
item
Command = 601
ShortCut = 16474
end
item
Command = 602
ShortCut = 24666
end
item
Command = 301
ShortCut = 16432
end
item
Command = 302
ShortCut = 16433
end
item
Command = 303
ShortCut = 16434
end
item
Command = 304
ShortCut = 16435
end
item
Command = 305
ShortCut = 16436
end
item
Command = 306
ShortCut = 16437
end
item
Command = 307
ShortCut = 16438
end
item
Command = 308
ShortCut = 16439
end
item
Command = 309
ShortCut = 16440
end
item
Command = 310
ShortCut = 16441
end
item
Command = 351
ShortCut = 24624
end
item
Command = 352
ShortCut = 24625
end
item
Command = 353
ShortCut = 24626
end
item
Command = 354
ShortCut = 24627
end
item
Command = 355
ShortCut = 24628
end
item
Command = 356
ShortCut = 24629
end
item
Command = 357
ShortCut = 24630
end
item
Command = 358
ShortCut = 24631
end
item
Command = 359
ShortCut = 24632
end
item
Command = 360
ShortCut = 24633
end
item
Command = 231
ShortCut = 24654
end
item
Command = 232
ShortCut = 24643
end
item
Command = 233
ShortCut = 24652
end
item
Command = 612
ShortCut = 9
end
item
Command = 613
ShortCut = 8201
end
item
Command = 250
ShortCut = 24642
end>
ReadOnly = True
SelectedColor.OnChange = nil
end
end
object tsDependencies: TTabSheet
Caption = 'Used by'
ClientHeight = 224
ClientWidth = 392
object tvDependency: TTreeView
Left = 12
Height = 194
Top = 13
Width = 360
Anchors = [akTop, akLeft, akRight, akBottom]
DefaultItemHeight = 15
ReadOnly = True
RightClickSelect = True
TabOrder = 0
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
end
end end
object AL: TActionList object AL: TActionList
left = 147 left = 147
@ -95,5 +478,18 @@ object fTypeAliasEdit: TfTypeAliasEdit
OnExecute = actOKExecute OnExecute = actOKExecute
OnUpdate = actOKUpdate OnUpdate = actOKUpdate
end end
object actApply: TAction
Caption = 'Apply'
DisableIfNoHandler = True
OnExecute = actApplyExecute
OnUpdate = actOKUpdate
end
end
object SynXMLSyn1: TSynXMLSyn
DefaultFilter = 'Documents XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'
Enabled = False
WantBracesParsed = False
left = 200
top = 168
end end
end end

View File

@ -1,30 +1,97 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus } { Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfTypeAliasEdit','FORMDATA',[ LazarusResources.Add('TfTypeAliasEdit','FORMDATA',[
'TPF0'#15'TfTypeAliasEdit'#14'fTypeAliasEdit'#4'Left'#3#181#2#6'Height'#3','#1 'TPF0'#15'TfTypeAliasEdit'#14'fTypeAliasEdit'#4'Left'#3#170#2#6'Height'#3','#1
+#3'Top'#3#186#0#5'Width'#3#144#1#18'HorzScrollBar.Page'#3#143#1#18'VertScrol' +#3'Top'#2'['#5'Width'#3#144#1#18'HorzScrollBar.Page'#3#143#1#18'VertScrollBa'
+'lBar.Page'#3'+'#1#13'ActiveControl'#7#7'Button1'#11'BorderStyle'#7#13'bsSiz' +'r.Page'#3'+'#1#13'ActiveControl'#7#2'PC'#11'BorderStyle'#7#13'bsSizeToolWin'
+'eToolWin'#7'Caption'#6#14'fTypeAliasEdit'#8'Position'#7#14'poScreenCenter'#0 +#7'Caption'#6#14'fTypeAliasEdit'#12'ClientHeight'#3','#1#11'ClientWidth'#3
+#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'#3#250#0#5'Width'#3#144#1#5'Align' +#144#1#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TPane'
+#7#8'alBottom'#8'TabOrder'#2#0#0#7'TButton'#7'Button1'#4'Left'#3#232#0#6'Hei' +'l'#6'Panel1'#6'Height'#2'2'#3'Top'#3#250#0#5'Width'#3#144#1#5'Align'#7#8'al'
+'ght'#2#25#3'Top'#2#14#5'Width'#2'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5'ak' +'Bottom'#12'ClientHeight'#2'2'#11'ClientWidth'#3#144#1#8'TabOrder'#2#0#0#7'T'
+'Top'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7'T' +'Button'#7'Button1'#4'Left'#3#147#0#6'Height'#2#25#3'Top'#2#14#5'Width'#2'K'
+'Button'#7'Button2'#4'Left'#3'8'#1#6'Height'#2#25#3'Top'#2#14#5'Width'#2'K'#7 +#6'Action'#7#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.I'
+'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cance' +'nnerBorder'#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#229#0#6
+'l'#9#7'Caption'#6#6'Cancel'#8'TabOrder'#2#1#0#0#0#12'TPageControl'#12'PageC' +'Height'#2#25#3'Top'#2#14#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0
+'ontrol1'#6'Height'#3#250#0#5'Width'#3#144#1#10'ActivePage'#7#9'TabSheet1'#5 +#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'Mod'
+'Align'#7#8'alClient'#8'TabIndex'#2#0#8'TabOrder'#2#1#0#9'TTabSheet'#9'TabSh' +'alResult'#2#2#8'TabOrder'#2#1#0#0#7'TButton'#7'Button3'#4'Left'#3'7'#1#6'He'
+'eet1'#7'Caption'#6#10'Type Alias'#0#6'TLabel'#6'Label1'#4'Left'#2#20#6'Heig' +'ight'#2#25#3'Top'#2#14#5'Width'#2'K'#6'Action'#7#8'actApply'#7'Anchors'#11#5
+'ht'#2#14#3'Top'#2#26#5'Width'#2#28#7'Caption'#6#4'Name'#5'Color'#7#6'clNone' +'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#2#0#0#0
+#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#20#6'Height'#2#14#3'Top' +#12'TPageControl'#2'PC'#6'Height'#3#250#0#5'Width'#3#144#1#10'ActivePage'#7#9
+#2'r'#5'Width'#2'3'#7'Caption'#6#9'Base Type'#5'Color'#7#6'clNone'#11'Parent' +'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8'TabOrder'#2#1#8'OnChang'
+'Color'#8#0#0#5'TEdit'#7'edtName'#4'Left'#2#20#6'Height'#2#23#3'Top'#2'*'#5 +'e'#7#8'PCChange'#13'OnPageChanged'#7#8'PCChange'#0#9'TTabSheet'#9'TabSheet1'
+'Width'#3'`'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0 +#7'Caption'#6#10'Type Alias'#12'ClientHeight'#3#224#0#11'ClientWidth'#3#136#1
+#0#6'TLabel'#6'Label1'#4'Left'#2#20#6'Height'#2#14#3'Top'#2#26#5'Width'#2#28
+#7'Caption'#6#4'Name'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#20
+#6'Height'#2#14#3'Top'#2'r'#5'Width'#2'3'#7'Caption'#6#9'Base Type'#11'Paren'
+'tColor'#8#0#0#5'TEdit'#7'edtName'#4'Left'#2#20#6'Height'#2#23#3'Top'#2'*'#5
+'Width'#3'X'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0
+#0#0#9'TComboBox'#11'edtBaseType'#4'Left'#2#20#6'Height'#2#21#3'Top'#3#130#0 +#0#0#9'TComboBox'#11'edtBaseType'#4'Left'#2#20#6'Height'#2#21#3'Top'#3#130#0
+#5'Width'#3'`'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoComple' +#5'Width'#3'X'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoComple'
+'teText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#10'ItemHei' +'teText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#10'ItemHei'
+'ght'#2#13#9'MaxLength'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#1#0#0 +'ght'#2#13#9'MaxLength'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#1#0#0
+#0#0#11'TActionList'#2'AL'#4'left'#3#147#0#3'top'#2'x'#0#7'TAction'#5'actOK' +#0#9'TTabSheet'#11'tsSourceXSD'#7'Caption'#6#3'XSD'#12'ClientHeight'#3#224#0
+#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute' +#11'ClientWidth'#3#136#1#0#8'TSynEdit'#12'edtSourceXSD'#4'Left'#2#13#6'Heigh'
+#8'OnUpdate'#7#11'actOKUpdate'#0#0#0#0 +'t'#3#200#0#3'Top'#2#10#5'Width'#3'h'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'a'
+'kRight'#8'akBottom'#0#11'Font.Height'#2#236#9'Font.Name'#6#7'courier'#11'Pa'
+'rentColor'#8#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'*'#24'BookMarkOp'
+'tions.OnChange'#13#17'Gutter.DigitCount'#2#2#22'Gutter.ShowLineNumbers'#9#22
+'Gutter.ShowCodeFolding'#9#12'Gutter.Width'#2#10#15'Gutter.OnChange'#13#23'G'
+'utter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#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#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#14'tsDependencies'#7'Caption'#6#7'U'
+'sed by'#12'ClientHeight'#3#224#0#11'ClientWidth'#3#136#1#0#9'TTreeView'#12
+'tvDependency'#4'Left'#2#12#6'Height'#3#194#0#3'Top'#2#13#5'Width'#3'h'#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'DefaultItemHeigh'
+'t'#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Options'#11
+#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvo'
+'ReadOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tv'
+'oShowRoot'#11'tvoToolTips'#0#0#0#0#0#11'TActionList'#2'AL'#4'left'#3#147#0#3
+'top'#2'x'#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9
+#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'
+#8'actApply'#7'Caption'#6#5'Apply'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15
+'actApplyExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#0#10'TSynXMLSyn'#10'SynX'
+'MLSyn1'#13'DefaultFilter'#6'MDocuments XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)'
+'|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'#7'Enabled'#8#16'WantBracesParsed'#8#4'left'
+#3#200#0#3'top'#3#168#0#0#0#0
]); ]);

View File

@ -6,39 +6,55 @@ interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
ComCtrls, StdCtrls, Buttons, ComCtrls, StdCtrls, Buttons, Contnrs,
pastree, pascal_parser_intf, edit_helper, ActnList; pastree, pascal_parser_intf, edit_helper, ActnList, SynHighlighterXML,
SynEdit;
type type
{ TfTypeAliasEdit } { TfTypeAliasEdit }
TfTypeAliasEdit = class(TForm) TfTypeAliasEdit = class(TForm)
actApply : TAction;
actOK : TAction; actOK : TAction;
AL : TActionList; AL : TActionList;
Button1 : TButton; Button1 : TButton;
Button2 : TButton; Button2 : TButton;
Button3 : TButton;
edtBaseType : TComboBox; edtBaseType : TComboBox;
edtName : TEdit; edtName : TEdit;
edtSourceXSD : TSynEdit;
Label1 : TLabel; Label1 : TLabel;
Label2 : TLabel; Label2 : TLabel;
PageControl1 : TPageControl; PC : TPageControl;
Panel1 : TPanel; Panel1 : TPanel;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1 : TTabSheet; TabSheet1 : TTabSheet;
tsDependencies : TTabSheet;
tsSourceXSD : TTabSheet;
tvDependency : TTreeView;
procedure actApplyExecute(Sender : TObject);
procedure actOKExecute(Sender : TObject); procedure actOKExecute(Sender : TObject);
procedure actOKUpdate(Sender : TObject); procedure actOKUpdate(Sender : TObject);
procedure PCChange(Sender : TObject);
private private
FUpdateType : TEditType; FUpdateType : TEditType;
FObject : TPasAliasType; FObject : TPasAliasType;
FSymbolTable : TwstPasTreeContainer; FSymbolTable : TwstPasTreeContainer;
FOldBaseType : TPasType; FOldBaseType : TPasType;
FApplied : Boolean;
FDependencyList : TObjectList;
private private
property UpdateType : TEditType read FUpdateType; property UpdateType : TEditType read FUpdateType;
private private
procedure PrepareParentCombo(); procedure PrepareParentCombo();
procedure LoadFromObject(); procedure LoadFromObject();
procedure SaveToObject(); procedure SaveToObject();
procedure ShowSourceXSD();
procedure ShowDependencies();
public public
destructor Destroy();override;
function UpdateObject( function UpdateObject(
var AObject : TPasAliasType; var AObject : TPasAliasType;
const AUpdateType : TEditType; const AUpdateType : TEditType;
@ -51,7 +67,7 @@ var
fTypeAliasEdit : TfTypeAliasEdit; fTypeAliasEdit : TfTypeAliasEdit;
implementation implementation
uses parserutils; uses parserutils, view_helper;
{ TfTypeAliasEdit } { TfTypeAliasEdit }
@ -60,11 +76,29 @@ begin
TAction(actOK).Enabled := ( not IsStrEmpty(edtName.Text) ) and ( edtBaseType.ItemIndex >= 0 ); TAction(actOK).Enabled := ( not IsStrEmpty(edtName.Text) ) and ( edtBaseType.ItemIndex >= 0 );
end; end;
procedure TfTypeAliasEdit.PCChange(Sender : TObject);
begin
if ( PC.ActivePage = tsSourceXSD ) then begin
if actApply.Enabled then
actApply.Execute();
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end;
end;
procedure TfTypeAliasEdit.actOKExecute(Sender : TObject); procedure TfTypeAliasEdit.actOKExecute(Sender : TObject);
begin begin
ModalResult := mrOK; ModalResult := mrOK;
end; end;
procedure TfTypeAliasEdit.actApplyExecute(Sender : TObject);
begin
SaveToObject();
if ( PC.ActivePage = tsSourceXSD ) then
ShowSourceXSD();
end;
procedure TfTypeAliasEdit.PrepareParentCombo(); procedure TfTypeAliasEdit.PrepareParentCombo();
begin begin
edtBaseType.Items.BeginUpdate(); edtBaseType.Items.BeginUpdate();
@ -120,6 +154,28 @@ begin
locObj.DestType := baseType; locObj.DestType := baseType;
locObj.DestType.AddRef(); locObj.DestType.AddRef();
end; end;
FOldBaseType := locObj.DestType;
FApplied := True;
end;
procedure TfTypeAliasEdit.ShowSourceXSD();
begin
edtSourceXSD.Lines.Text := XsdGenerateSourceForObject(FObject,FSymbolTable);
end;
procedure TfTypeAliasEdit.ShowDependencies();
begin
if ( FDependencyList = nil ) then
FDependencyList := TObjectList.Create(True);
FDependencyList.Clear();
FindDependencies(FObject,FSymbolTable,FDependencyList);
DrawDependencies(tvDependency,FDependencyList);
end;
destructor TfTypeAliasEdit.Destroy();
begin
FDependencyList.Free();
inherited Destroy();
end; end;
function TfTypeAliasEdit.UpdateObject( function TfTypeAliasEdit.UpdateObject(
@ -137,7 +193,7 @@ begin
try try
PrepareParentCombo(); PrepareParentCombo();
LoadFromObject(); LoadFromObject();
Result := ( ShowModal() = mrOK ); Result := FApplied or ( ShowModal() = mrOK );
if Result then begin if Result then begin
try try
SaveToObject(); SaveToObject();

View File

@ -1,7 +1,7 @@
object fWstTypeLibraryEdit: TfWstTypeLibraryEdit object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Left = 199 Left = 155
Height = 644 Height = 644
Top = 380 Top = 166
Width = 833 Width = 833
HorzScrollBar.Page = 832 HorzScrollBar.Page = 832
VertScrollBar.Page = 623 VertScrollBar.Page = 623
@ -79,9 +79,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 81 BookMarkOptions.Xoffset = 81
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5 Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True Gutter.ShowCodeFolding = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1 Highlighter = SynPasSyn1
Keystrokes = < Keystrokes = <
@ -406,6 +408,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsWSDL: TTabSheet object tsWSDL: TTabSheet
@ -423,7 +426,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 54 BookMarkOptions.Xoffset = 54
BookMarkOptions.OnChange = nil
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1 Highlighter = SynXMLSyn1
Keystrokes = < Keystrokes = <
@ -748,6 +753,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsProxy: TTabSheet object tsProxy: TTabSheet
@ -765,11 +771,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 81 BookMarkOptions.Xoffset = 81
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5 Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True Gutter.ShowCodeFolding = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1 Highlighter = SynPasSyn1
Keystrokes = < Keystrokes = <
@ -1094,7 +1098,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsImp: TTabSheet object tsImp: TTabSheet
@ -1112,11 +1115,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 81 BookMarkOptions.Xoffset = 81
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5 Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True Gutter.ShowCodeFolding = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1 Highlighter = SynPasSyn1
Keystrokes = < Keystrokes = <
@ -1441,7 +1442,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsBinder: TTabSheet object tsBinder: TTabSheet
@ -1459,12 +1459,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 81 BookMarkOptions.Xoffset = 81
BookMarkOptions.OnChange = nil
Gutter.AutoSize = True Gutter.AutoSize = True
Gutter.DigitCount = 5 Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True Gutter.ShowCodeFolding = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1 Highlighter = SynPasSyn1
Keystrokes = < Keystrokes = <
@ -1789,7 +1787,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsLog: TTabSheet object tsLog: TTabSheet
@ -1857,8 +1854,8 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
OnClick = actRefreshViewExecute OnClick = actRefreshViewExecute
end end
object MenuItem50: TMenuItem object MenuItem50: TMenuItem
Action = actSearch Action = actEditSearch
OnClick = actSearchExecute OnClick = actEditSearchExecute
end end
object MenuItem29: TMenuItem object MenuItem29: TMenuItem
Caption = '-' Caption = '-'
@ -2019,13 +2016,19 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
DisableIfNoHandler = True DisableIfNoHandler = True
OnExecute = actRecordCreateExecute OnExecute = actRecordCreateExecute
end end
object actSearch: TAction object actEditSearch: TAction
Caption = 'Search' Caption = 'Search'
DisableIfNoHandler = True DisableIfNoHandler = True
OnExecute = actSearchExecute OnExecute = actEditSearchExecute
OnUpdate = actSearchUpdate OnUpdate = actEditSearchUpdate
ShortCut = 16454 ShortCut = 16454
end end
object actTreeSearch: TAction
Caption = 'Search'
DisableIfNoHandler = True
OnExecute = actTreeSearchExecute
OnUpdate = actTreeSearchUpdate
end
end end
object OD: TOpenDialog object OD: TOpenDialog
Filter = 'WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.pas' Filter = 'WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.pas'
@ -2073,6 +2076,13 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
object MenuItem26: TMenuItem object MenuItem26: TMenuItem
Caption = '-' Caption = '-'
end end
object MenuItem51: TMenuItem
Action = actTreeSearch
OnClick = actTreeSearchExecute
end
object MenuItem52: TMenuItem
Caption = '-'
end
object MenuItem8: TMenuItem object MenuItem8: TMenuItem
Action = actEnumCreate Action = actEnumCreate
OnClick = actEnumCreateExecute OnClick = actEnumCreateExecute
@ -2117,8 +2127,8 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
OnClick = actRefreshViewExecute OnClick = actRefreshViewExecute
end end
object MenuItem49: TMenuItem object MenuItem49: TMenuItem
Action = actSearch Action = actEditSearch
OnClick = actSearchExecute OnClick = actEditSearchExecute
end end
object MenuItem19: TMenuItem object MenuItem19: TMenuItem
Caption = '-' Caption = '-'

View File

@ -1,8 +1,8 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus } { Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#199#0#6'Hei' 'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#155#0#6'Hei'
+'ght'#3#132#2#3'Top'#3'|'#1#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18 +'ght'#3#132#2#3'Top'#3#166#0#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18
+'VertScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+[' +'VertScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+['
+'Web Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'Clie' +'Web Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'Clie'
+'ntWidth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7 +'ntWidth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7
@ -23,28 +23,177 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ont.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height' +'ont.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'
+#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor' +#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'
+#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset' +#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'
+#2'Q'#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowC' +#2'Q'#24'BookMarkOptions.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.Sh'
+'odeFolding'#9#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasS' +'owLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gut'
+'yn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g' +'ter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'
+#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2 +#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0
+#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3 +#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0
+#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2 +#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'
+'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2 +#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0
+'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2 +#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1
+'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2 +#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1
+'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2 +#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1
+'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2 +#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm' +'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q' +'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8 +'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8 +'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#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#0#8
+'TSynEdit'#7'srcWSDL'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClien'
+'t'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.'
+'Height'#2#233#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'Pare'
+'ntColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions'
+'.Xoffset'#2'6'#24'BookMarkOptions.OnChange'#13#22'Gutter.ShowLineNumbers'#9
+#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10
+'SynXMLSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Comma'
+'nd'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'C'
+'ommand'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Co'
+'mmand'#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'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#8'ReadOnly'#9#22'SelectedColor.OnChange'#13#0#0#0#9'TTabS'
+'heet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#0#8'TSynEdit'#8'srcProxy'#6'Height'
+#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_C'
+'HARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7
+'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'Po'
+'pupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.DigitC'
+'ount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutt'
+'er.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#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#8'ReadOnly'#9#0#0#0#9'T'
+'TabSheet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#0#8'TSynEdit'#6
+'srcImp'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.Ch'
+'arSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236
+#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'P'
+'opupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'
+#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFo'
+'lding'#9#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'
+#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'S'
+'hortCut'#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'S'
+'hortCut'#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'S'
+'hortCut'#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'S' +'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'S'
+'hortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8 +'hortCut'#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 +'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 +#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'Comman' +#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman'
+'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7 +'d'#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 ,'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 +#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 +#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'Comma' +#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
@ -65,172 +214,22 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1 +'ortCut'#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 +#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'Comm' +#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
,'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7 +'and'#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`' +'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'
+#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#0#8'TS' +#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#8'tsBinder'#7'Caption'#6#7'&Binder'#0#8
+'ynEdit'#7'srcWSDL'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient' +'TSynEdit'#9'srcBinder'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alCli'
+#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Hei' +'ent'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Fon'
+'ght'#2#233#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentC' +'t.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'Pa'
+'olor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xo' +'rentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptio'
+'ffset'#2'6'#22'Gutter.ShowLineNumbers'#9#23'Gutter.CodeFoldingWidth'#2#14#11 +'ns.Xoffset'#2'Q'#15'Gutter.AutoSize'#9#17'Gutter.DigitCount'#2#5#22'Gutter.'
+'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut' +'ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldingWidth'
+#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCu' +#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8
+'t'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut' +'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0
+#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCu' +#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8
+'t'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut' +'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1
+#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2 +#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8
+''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3 +'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8
+'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut' +'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8
+#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'Short'
+'Cut'#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'Comman'
+'d'#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'ShortC'
+'ut'#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'ShortCut'#3'T@'#0#1#7'Comm'
+'and'#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'Command'#3'-'#1#8'ShortCu'
+'t'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'Sh'
+'ortCut'#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'Comman'
+'d'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'C'
+'ommand'#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'Command'#3'f'#1#8'ShortCu'
+'t'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'Sh'
+'ortCut'#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'Comma'
+'nd'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#7'tsProx'
+'y'#7'Caption'#6#6'&Proxy'#0#8'TSynEdit'#8'srcProxy'#6'Height'#3'='#2#5'Widt'
+'h'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Fo'
+'nt.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'F'
+'ont.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'T'
+'abOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions.OnChange'
+#13#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCod'
+'eFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'High'
+'lighter'#7#10'SynPasSyn1'#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'Short'
+'Cut'#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'Comman'
+'d'#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'ShortC'
+'ut'#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'ShortCut'#3'T@'#0#1#7'Comm'
+'and'#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'Command'#3'-'#1#8'ShortCu'
+'t'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'Sh'
+'ortCut'#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'Comman'
+'d'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'C'
+'ommand'#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'Command'#3'f'#1#8'ShortCu'
+'t'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'Sh'
+'ortCut'#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'Comma'
+'nd'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'
+#13#0#0#0#9'TTabSheet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#0#8
+'TSynEdit'#6'srcImp'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'
+#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Hei'
+'ght'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentC'
+'olor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xo'
+'ffset'#2'Q'#24'BookMarkOptions.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gu'
+'tter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13
+#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystr'
+'okes'#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#8'Read'
+'Only'#9#22'SelectedColor.OnChange'#13#0#0#0#9'TTabSheet'#8'tsBinder'#7'Capt'
+'ion'#6#7'&Binder'#0#8'TSynEdit'#9'srcBinder'#6'Height'#3'='#2#5'Width'#3#245
+#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'
+#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'
+#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0
+#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions.OnChange'#13#15'Gutter.'
+'AutoSize'#9#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutte'
+'r.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14
+#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'Short'
+'Cut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'Sh'
+'ortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'Sho'
+'rtCut'#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'S'
+'hortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'S'
+'hortCut'#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 +'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 +#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'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8
@ -257,8 +256,8 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman' +'/'#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' +'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 +'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@' +#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 ,#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' +'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' +'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 +'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
@ -266,123 +265,127 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma' +'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 +'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 +'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#8'ReadOnly'#9#22'SelectedColor.OnC' +#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#5
+'hange'#13#0#0#0#9'TTabSheet'#5'tsLog'#7'Caption'#6#4'&Log'#0#5'TMemo'#6'mmo' +'tsLog'#7'Caption'#6#4'&Log'#0#5'TMemo'#6'mmoLog'#6'Height'#3'='#2#5'Width'#3
+'Log'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#13'Lines.Stri' +#245#1#5'Align'#7#8'alClient'#13'Lines.Strings'#1#6#0#0#10'ScrollBars'#7#6's'
+'ngs'#1#6#0#0#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#0#0#9'TSplitt' +'sBoth'#8'TabOrder'#2#0#0#0#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3':'#1#6
+'er'#9'Splitter1'#4'Left'#3':'#1#6'Height'#3'Y'#2#5'Width'#2#8#5'Color'#7#7 +'Height'#3'Y'#2#5'Width'#2#8#5'Color'#7#7'clBlack'#11'ParentColor'#8#0#0#9'T'
+'clBlack'#11'ParentColor'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3'`'#1#3't' +'MainMenu'#9'MainMenu1'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuItem'#9'MenuItem'
+'op'#2'p'#0#9'TMenuItem'#9'MenuItem1'#7'Caption'#6#6'&Files'#0#9'TMenuItem' +'1'#7'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Action'#7#10'actN'
+#10'MenuItem16'#6'Action'#7#10'actNewFile'#7'OnClick'#7#17'actNewFileExecute' +'ewFile'#7'OnClick'#7#17'actNewFileExecute'#0#0#9'TMenuItem'#9'MenuItem2'#7
+#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem' +'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#11'actOpenFile'#7
+'5'#6'Action'#7#11'actOpenFile'#7'OnClick'#7#18'actOpenFileExecute'#0#0#9'TM' +'OnClick'#7#18'actOpenFileExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7
+'enuItem'#9'MenuItem3'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExe' +#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9'TMenuItem'#9'MenuItem7'
+'cute'#0#0#9'TMenuItem'#9'MenuItem7'#6'Action'#7#7'actSave'#7'OnClick'#7#14 +#6'Action'#7#7'actSave'#7'OnClick'#7#14'actSaveExecute'#0#0#9'TMenuItem'#10
+'actSaveExecute'#0#0#9'TMenuItem'#10'MenuItem32'#6'Action'#7#9'actSaveAs'#7 +'MenuItem32'#6'Action'#7#9'actSaveAs'#7'OnClick'#7#16'actSaveAsExecute'#0#0#9
+'OnClick'#7#16'actSaveAsExecute'#0#0#9'TMenuItem'#10'MenuItem17'#7'Caption'#6 +'TMenuItem'#10'MenuItem17'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6
+#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#7'actExit'#7'OnClick'#7#14'a' +'Action'#7#7'actExit'#7'OnClick'#7#14'actExitExecute'#0#0#0#9'TMenuItem'#10
+'ctExitExecute'#0#0#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5'&View'#0#9 +'MenuItem14'#7'Caption'#6#5'&View'#0#9'TMenuItem'#10'MenuItem15'#6'Action'#7
+'TMenuItem'#10'MenuItem15'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'ac' +#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'
+'tRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem50'#6'Action'#7#9'actSearc' +#10'MenuItem50'#6'Action'#7#13'actEditSearch'#7'OnClick'#7#20'actEditSearchE'
+'h'#7'OnClick'#7#16'actSearchExecute'#0#0#9'TMenuItem'#10'MenuItem29'#7'Capt' +'xecute'#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6#1'-'#0#0#9'TMenuItem'
+'ion'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem30'#6'Action'#7#13'actFullExpand'#7 +#10'MenuItem30'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandE'
+'OnClick'#7#20'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem31'#6'Actio' +'xecute'#0#0#9'TMenuItem'#10'MenuItem31'#6'Action'#7#15'actFullCollapse'#7'O'
+'n'#7#15'actFullCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#0#9'TM' +'nClick'#7#22'actFullCollapseExecute'#0#0#0#9'TMenuItem'#10'MenuItem10'#7'Ca'
+'enuItem'#10'MenuItem10'#7'Caption'#6#8'&Edition'#0#9'TMenuItem'#10'MenuItem' +'ption'#6#8'&Edition'#0#9'TMenuItem'#10'MenuItem11'#6'Action'#7#13'actEnumCr'
+'11'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0 +'eate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem23'
+#9'TMenuItem'#10'MenuItem23'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7 +#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExecute'
+#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem48'#6'Action'#7#15 +#0#0#9'TMenuItem'#10'MenuItem48'#6'Action'#7#15'actRecordCreate'#7'OnClick'#7
+'actRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10 +#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem25'#6'Action'#7#13'a'
+'MenuItem25'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExec'
+'ute'#0#0#9'TMenuItem'#10'MenuItem35'#6'Action'#7#14'actArrayCreate'#7'OnCli'
+'ck'#7#21'actArrayCreateExecute'#0#0#9'TMenuItem'#10'MenuItem36'#6'Action'#7
+#18'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMe'
+'nuItem'#10'MenuItem12'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem13'#6
+'Action'#7#15'actUpdateObject'#7'Caption'#6#13'Update Object'#7'OnClick'#7#22
+'actUpdateObjectExecute'#0#0#9'TMenuItem'#10'MenuItem34'#6'Action'#7#9'actDe'
+'lete'#7'OnClick'#7#16'actDeleteExecute'#0#0#0#9'TMenuItem'#9'MenuItem6'#6'A'
+'ction'#7#8'actAbout'#7'Caption'#6#6'&About'#7'OnClick'#7#15'actAboutExecute'
+#0#0#0#11'TActionList'#2'AL'#4'left'#3'X'#1#3'top'#2'8'#0#7'TAction'#11'actO'
+'penFile'#7'Caption'#6#9'Open File'#18'DisableIfNoHandler'#9#9'OnExecute'#7
+#18'actOpenFileExecute'#8'ShortCut'#3'O@'#0#0#7'TAction'#7'actExit'#7'Captio'
+'n'#6#4'Exit'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actExitExecute'#8'S'
+'hortCut'#3's@'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save generated f'
+'iles ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExportExecute'#8'On'
+'Update'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'Abo'
+'ut'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TActi'
+'on'#9'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfNoHandler'#9#9'On'
+'Execute'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAc'
+'tion'#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#18'DisableIfNoH'
+'andler'#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAction'#15'actUpda'
+'teObject'#7'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22
+'actUpdateObjectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TActi'
+'on'#14'actRefreshView'#7'Caption'#6#14'&Refresh Views'#18'DisableIfNoHandle'
+'r'#9#9'OnExecute'#7#21'actRefreshViewExecute'#8'ShortCut'#2't'#0#0#7'TActio'
+'n'#10'actNewFile'#7'Caption'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExe'
+'cute'#7#17'actNewFileExecute'#8'ShortCut'#3'N@'#0#0#7'TAction'#17'actCompou'
+'ndCreate'#7'Caption'#6#17'Create Class Type'#18'DisableIfNoHandler'#9#9'OnE'
,'xecute'#7#24'actCompoundCreateExecute'#0#0#7'TAction'#13'actIntfCreate'#7'C'
+'aption'#6#16'Create Interface'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'a'
+'ctIntfCreateExecute'#0#0#7'TAction'#13'actFullExpand'#7'Caption'#6#11'Full '
+'expand'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actFullExpandExecute'#0#0
+#7'TAction'#15'actFullCollapse'#7'Caption'#6#13'Full Collapse'#18'DisableIfN'
+'oHandler'#9#9'OnExecute'#7#22'actFullCollapseExecute'#0#0#7'TAction'#7'actS'
+'ave'#7'Caption'#6#4'Save'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actSav'
+'eExecute'#8'ShortCut'#3'S@'#0#0#7'TAction'#9'actDelete'#7'Caption'#6#6'Dele'
+'te'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actDeleteExecute'#8'OnUpdate'
+#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actArrayCreate'#7'Caption'#6
+#12'Create Array'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'actArrayCreateE'
+'xecute'#0#0#7'TAction'#18'actTypeALiasCreate'#7'Caption'#6#17'Create Type A'
+'Lias'#18'DisableIfNoHandler'#9#9'OnExecute'#7#25'actTypeALiasCreateExecute'
+#0#0#7'TAction'#15'actRecordCreate'#7'Caption'#6#13'Create Record'#18'Disabl'
+'eIfNoHandler'#9#9'OnExecute'#7#22'actRecordCreateExecute'#0#0#7'TAction'#9
+'actSearch'#7'Caption'#6#6'Search'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16
+'actSearchExecute'#8'OnUpdate'#7#15'actSearchUpdate'#8'ShortCut'#3'F@'#0#0#0
+#11'TOpenDialog'#2'OD'#6'Filter'#6'3WDSL files(*.WSDL)|*.WSDL|Pascal file (*'
+'.pas)|*.pas'#11'FilterIndex'#2#0#10'InitialDir'#6#2'.\'#7'Options'#11#15'of'
+'PathMustExist'#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4
+'left'#3#153#1#3'top'#2'X'#0#0#10'TSynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23
+'CommentAttri.Foreground'#7#6'clBlue'#18'CommentAttri.Style'#11#6'fsBold'#0
+#22'StringAttri.Foreground'#7#8'clMaroon'#17'SymbolAttri.Style'#11#6'fsBold'
+#0#25'DirectiveAttri.Foreground'#7#7'clGreen'#20'DirectiveAttri.Style'#11#6
+'fsBold'#0#14'NestedComments'#9#4'left'#3#183#1#3'top'#2'h'#0#0#11'TSaveDial'
+'og'#2'SD'#10'DefaultExt'#6#5'.WSDL'#6'Filter'#6#25'WDSL files(*.WSDL)|*.WSD'
+'L'#11'FilterIndex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEnableSizing'
+#12'ofViewDetail'#0#4'left'#3#242#1#3'top'#3#176#0#0#0#10'TPopupMenu'#10'Pop'
+'upMenu1'#4'left'#3#152#0#3'top'#3#152#0#0#9'TMenuItem'#10'MenuItem28'#6'Act'
+'ion'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0#0#9'TMenuI'
+'tem'#10'MenuItem27'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7#22'actFull'
+'CollapseExecute'#0#0#9'TMenuItem'#10'MenuItem39'#6'Action'#7#14'actRefreshV'
+'iew'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem26'
+#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actEnumCreat'
+'e'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem21'#6
+'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExecute'#0
+#0#9'TMenuItem'#10'MenuItem46'#6'Action'#7#15'actRecordCreate'#7'OnClick'#7
+#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem24'#6'Action'#7#13'a'
+'ctIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'Men' +'ctIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'Men'
+'uItem37'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecu' +'uItem35'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecu'
+'te'#0#0#9'TMenuItem'#10'MenuItem38'#6'Action'#7#18'actTypeALiasCreate'#7'On' +'te'#0#0#9'TMenuItem'#10'MenuItem36'#6'Action'#7#18'actTypeALiasCreate'#7'On'
+'Click'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuItem22'#7'Ca' +'Click'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuItem12'#7'Ca'
+'ption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpdateObject' +'ption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem13'#6'Action'#7#15'actUpdateObjec'
+#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'#10'MenuItem33'#6'A' +'t'#7'Caption'#6#13'Update Object'#7'OnClick'#7#22'actUpdateObjectExecute'#0
+'ction'#7#9'actDelete'#7'OnClick'#7#16'actDeleteExecute'#0#0#0#10'TPopupMenu' +#0#9'TMenuItem'#10'MenuItem34'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actD'
+#10'PopupMenu2'#4'left'#3#16#2#3'top'#3#235#0#0#9'TMenuItem'#10'MenuItem18'#6 +'eleteExecute'#0#0#0#9'TMenuItem'#9'MenuItem6'#6'Action'#7#8'actAbout'#7'Cap'
+'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'T' +'tion'#6#6'&About'#7'OnClick'#7#15'actAboutExecute'#0#0#0#11'TActionList'#2
+'MenuItem'#10'MenuItem49'#6'Action'#7#9'actSearch'#7'OnClick'#7#16'actSearch' +'AL'#4'left'#3'X'#1#3'top'#2'8'#0#7'TAction'#11'actOpenFile'#7'Caption'#6#9
+'Execute'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6#1'-'#0#0#9'TMenuItem' +'Open File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18'actOpenFileExecute'#8
+#10'MenuItem20'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExecute'#0 +'ShortCut'#3'O@'#0#0#7'TAction'#7'actExit'#7'Caption'#6#4'Exit'#18'DisableIf'
+#0#9'TMenuItem'#10'MenuItem40'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuIte' +'NoHandler'#9#9'OnExecute'#7#14'actExitExecute'#8'ShortCut'#3's@'#0#0#7'TAct'
+'m41'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0 +'ion'#9'actExport'#7'Caption'#6#24'Save generated files ...'#18'DisableIfNoH'
+#0#9'TMenuItem'#10'MenuItem45'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7 +'andler'#9#9'OnExecute'#7#16'actExportExecute'#8'OnUpdate'#7#15'actExportUpd'
+#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem47'#6'Action'#7#15 +'ate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'About'#18'DisableIfNoHandler'
+'actRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10 +#9#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TAction'#9'actSaveAs'#7'Caption'
+#6#11'Save As ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actSaveAsExecu'
+'te'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#13'actEnumCreate'#7'Ca'
+'ption'#6#18'Create Enumeration'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20
+'actEnumCreateExecute'#0#0#7'TAction'#15'actUpdateObject'#7'Caption'#6#6'Upd'
+'ate'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actUpdateObjectExecute'#8'O'
+'nUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actRefreshView'#7'Ca'
+'ption'#6#14'&Refresh Views'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'actR'
+'efreshViewExecute'#8'ShortCut'#2't'#0#0#7'TAction'#10'actNewFile'#7'Caption'
+#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actNewFileExecute'
+#8'ShortCut'#3'N@'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6#17'Crea'
+'te Class Type'#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actCompoundCreate'
+'Execute'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Interface'
,#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAct'
+'ion'#13'actFullExpand'#7'Caption'#6#11'Full expand'#18'DisableIfNoHandler'#9
+#9'OnExecute'#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFullCollapse'#7
+'Caption'#6#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'act'
+'FullCollapseExecute'#0#0#7'TAction'#7'actSave'#7'Caption'#6#4'Save'#18'Disa'
+'bleIfNoHandler'#9#9'OnExecute'#7#14'actSaveExecute'#8'ShortCut'#3'S@'#0#0#7
+'TAction'#9'actDelete'#7'Caption'#6#6'Delete'#18'DisableIfNoHandler'#9#9'OnE'
+'xecute'#7#16'actDeleteExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7
+'TAction'#14'actArrayCreate'#7'Caption'#6#12'Create Array'#18'DisableIfNoHan'
+'dler'#9#9'OnExecute'#7#21'actArrayCreateExecute'#0#0#7'TAction'#18'actTypeA'
+'LiasCreate'#7'Caption'#6#17'Create Type ALias'#18'DisableIfNoHandler'#9#9'O'
+'nExecute'#7#25'actTypeALiasCreateExecute'#0#0#7'TAction'#15'actRecordCreate'
+#7'Caption'#6#13'Create Record'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'a'
+'ctRecordCreateExecute'#0#0#7'TAction'#13'actEditSearch'#7'Caption'#6#6'Sear'
+'ch'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actEditSearchExecute'#8'OnUp'
+'date'#7#19'actEditSearchUpdate'#8'ShortCut'#3'F@'#0#0#7'TAction'#13'actTree'
+'Search'#7'Caption'#6#6'Search'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'a'
+'ctTreeSearchExecute'#8'OnUpdate'#7#19'actTreeSearchUpdate'#0#0#0#11'TOpenDi'
+'alog'#2'OD'#6'Filter'#6'3WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.pa'
+'s'#11'FilterIndex'#2#0#10'InitialDir'#6#2'.\'#7'Options'#11#15'ofPathMustEx'
+'ist'#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#153
+#1#3'top'#2'X'#0#0#10'TSynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttr'
+'i.Foreground'#7#6'clBlue'#18'CommentAttri.Style'#11#6'fsBold'#0#22'StringAt'
+'tri.Foreground'#7#8'clMaroon'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'Direc'
+'tiveAttri.Foreground'#7#7'clGreen'#20'DirectiveAttri.Style'#11#6'fsBold'#0
+#14'NestedComments'#9#4'left'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2'SD'
+#10'DefaultExt'#6#5'.WSDL'#6'Filter'#6#25'WDSL files(*.WSDL)|*.WSDL'#11'Filt'
+'erIndex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEnableSizing'#12'ofView'
+'Detail'#0#4'left'#3#242#1#3'top'#3#176#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4
+'left'#3#152#0#3'top'#3#152#0#0#9'TMenuItem'#10'MenuItem28'#6'Action'#7#13'a'
+'ctFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0#0#9'TMenuItem'#10'Men'
+'uItem27'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7#22'actFullCollapseExe'
+'cute'#0#0#9'TMenuItem'#10'MenuItem39'#6'Action'#7#14'actRefreshView'#7'OnCl'
+'ick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem26'#7'Caption'
+#6#1'-'#0#0#9'TMenuItem'#10'MenuItem51'#6'Action'#7#13'actTreeSearch'#7'OnCl'
+'ick'#7#20'actTreeSearchExecute'#0#0#9'TMenuItem'#10'MenuItem52'#7'Caption'#6
+#1'-'#0#0#9'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actEnumCreate'#7'OnClick'
+#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem21'#6'Action'#7#17'a'
+'ctCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExecute'#0#0#9'TMenuItem'
+#10'MenuItem46'#6'Action'#7#15'actRecordCreate'#7'OnClick'#7#22'actRecordCre'
+'ateExecute'#0#0#9'TMenuItem'#10'MenuItem24'#6'Action'#7#13'actIntfCreate'#7
+'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem37'#6'Actio'
+'n'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0#0#9'TMenuI'
+'tem'#10'MenuItem38'#6'Action'#7#18'actTypeALiasCreate'#7'OnClick'#7#25'actT'
+'ypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuItem22'#7'Caption'#6#1'-'#0#0
+#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpdateObject'#7'OnClick'#7#22'a'
+'ctUpdateObjectExecute'#0#0#9'TMenuItem'#10'MenuItem33'#6'Action'#7#9'actDel'
+'ete'#7'OnClick'#7#16'actDeleteExecute'#0#0#0#10'TPopupMenu'#10'PopupMenu2'#4
+'left'#3#16#2#3'top'#3#235#0#0#9'TMenuItem'#10'MenuItem18'#6'Action'#7#14'ac'
+'tRefreshView'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'Me'
+'nuItem49'#6'Action'#7#13'actEditSearch'#7'OnClick'#7#20'actEditSearchExecut'
+'e'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'Me'
+'nuItem20'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9
+'TMenuItem'#10'MenuItem40'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem41'
+#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0#0#9
+'TMenuItem'#10'MenuItem45'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24
+'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem47'#6'Action'#7#15'ac'
+'tRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10
+'MenuItem44'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExec' +'MenuItem44'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExec'
+'ute'#0#0#9'TMenuItem'#10'MenuItem43'#6'Action'#7#13'actIntfCreate'#7'OnClic' +'ute'#0#0#9'TMenuItem'#10'MenuItem43'#6'Action'#7#13'actIntfCreate'#7'OnClic'
+'k'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem42'#6'Action'#7#18 +'k'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem42'#6'Action'#7#18
+'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#0#10'TSy' +'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#0#10'TSy'
+'nXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6#30'Documents WSDL (*.wsdl)|*.ws' +'nXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6#30'Documents WSDL (*.wsdl)|*.ws'
+'dl'#7'Enabled'#8#23'ElementAttri.Foreground'#7#6'clNavy'#30'AttributeValueA' +'dl'#7'Enabled'#8#23'ElementAttri.Foreground'#7#6'clNavy'#30'AttributeValueA'
+'ttri.Foreground'#7#8'clPurple'#16'WantBracesParsed'#8#4'left'#3#210#1#3'top' ,'ttri.Foreground'#7#8'clPurple'#16'WantBracesParsed'#8#4'left'#3#210#1#3'top'
+#3#252#0#0#0#11'TFindDialog'#2'FD'#6'OnShow'#7#6'FDShow'#5'Title'#6#6'Search' +#3#252#0#0#0#11'TFindDialog'#2'FD'#6'OnShow'#7#6'FDShow'#5'Title'#6#6'Search'
+#6'OnFind'#7#6'FDFind'#4'left'#3'@'#2#3'top'#3#143#0#0#0#0 +#6'OnFind'#7#6'FDFind'#4'left'#3'@'#2#3'top'#3#143#0#0#0#0
]); ]);

View File

@ -25,6 +25,8 @@ uses
type type
TSearchArea = ( saEditor, saTree );
{ TfWstTypeLibraryEdit } { TfWstTypeLibraryEdit }
TfWstTypeLibraryEdit = class(TForm) TfWstTypeLibraryEdit = class(TForm)
@ -38,7 +40,8 @@ type
actFullCollapse: TAction; actFullCollapse: TAction;
actDelete : TAction; actDelete : TAction;
actArrayCreate : TAction; actArrayCreate : TAction;
actSearch : TAction; actEditSearch : TAction;
actTreeSearch : TAction;
actRecordCreate : TAction; actRecordCreate : TAction;
actTypeALiasCreate : TAction; actTypeALiasCreate : TAction;
actSave : TAction; actSave : TAction;
@ -92,6 +95,8 @@ type
MenuItem49 : TMenuItem; MenuItem49 : TMenuItem;
MenuItem5: TMenuItem; MenuItem5: TMenuItem;
MenuItem50 : TMenuItem; MenuItem50 : TMenuItem;
MenuItem51 : TMenuItem;
MenuItem52 : TMenuItem;
MenuItem6: TMenuItem; MenuItem6: TMenuItem;
MenuItem7 : TMenuItem; MenuItem7 : TMenuItem;
MenuItem8: TMenuItem; MenuItem8: TMenuItem;
@ -141,8 +146,10 @@ type
procedure actRefreshViewExecute(Sender: TObject); procedure actRefreshViewExecute(Sender: TObject);
procedure actSaveAsExecute(Sender: TObject); procedure actSaveAsExecute(Sender: TObject);
procedure actSaveExecute (Sender : TObject ); procedure actSaveExecute (Sender : TObject );
procedure actSearchExecute(Sender : TObject); procedure actEditSearchExecute(Sender : TObject);
procedure actSearchUpdate(Sender : TObject); procedure actEditSearchUpdate(Sender : TObject);
procedure actTreeSearchExecute(Sender : TObject);
procedure actTreeSearchUpdate(Sender : TObject);
procedure actTypeALiasCreateExecute(Sender : TObject); procedure actTypeALiasCreateExecute(Sender : TObject);
procedure actUpdateObjectExecute(Sender: TObject); procedure actUpdateObjectExecute(Sender: TObject);
procedure actUpdateObjectUpdate(Sender: TObject); procedure actUpdateObjectUpdate(Sender: TObject);
@ -155,9 +162,13 @@ type
FStatusMessageTag : PtrInt; FStatusMessageTag : PtrInt;
FCurrentFileName : string; FCurrentFileName : string;
{$IFDEF WST_IDE}FProjectLibrary : TLazProjectFile;{$ENDIF} {$IFDEF WST_IDE}FProjectLibrary : TLazProjectFile;{$ENDIF}
FSearchArea : TSearchArea;
FFoundNode : TTreeNode;
private private
function FindCurrentEditor() : TSynEdit; function FindCurrentEditor() : TSynEdit;
function Search(const AText : string) : Boolean; function Search(const AText : string) : Boolean;
function SearchInTree(const AText : string) : Boolean;
function SearchInEditor(const AText : string) : Boolean;
private private
function GetTypeNode() : TTreeNode; function GetTypeNode() : TTreeNode;
function GetInterfaceNode() : TTreeNode; function GetInterfaceNode() : TTreeNode;
@ -454,16 +465,28 @@ begin
actSaveAs.Execute() ; actSaveAs.Execute() ;
end; end;
procedure TfWstTypeLibraryEdit.actSearchExecute(Sender : TObject); procedure TfWstTypeLibraryEdit.actEditSearchExecute(Sender : TObject);
begin begin
FSearchArea := saEditor;
FD.Execute(); FD.Execute();
end; end;
procedure TfWstTypeLibraryEdit.actSearchUpdate(Sender : TObject); procedure TfWstTypeLibraryEdit.actEditSearchUpdate(Sender : TObject);
begin begin
TAction(Sender).Enabled := ( PC.ActivePageIndex in [0..4] ); TAction(Sender).Enabled := ( PC.ActivePageIndex in [0..4] );
end; end;
procedure TfWstTypeLibraryEdit.actTreeSearchExecute(Sender : TObject);
begin
FSearchArea := saTree;
FD.Execute();
end;
procedure TfWstTypeLibraryEdit.actTreeSearchUpdate(Sender : TObject);
begin
TAction(Sender).Enabled := ( GetTypeNode().Count > 0 );
end;
procedure TfWstTypeLibraryEdit.actTypeALiasCreateExecute(Sender : TObject); procedure TfWstTypeLibraryEdit.actTypeALiasCreateExecute(Sender : TObject);
var var
e : TPasAliasType; e : TPasAliasType;
@ -515,6 +538,7 @@ procedure TfWstTypeLibraryEdit.FDShow(Sender : TObject);
var var
edt : TSynEdit; edt : TSynEdit;
begin begin
FFoundNode := nil;
edt := FindCurrentEditor(); edt := FindCurrentEditor();
if Assigned(edt) and edt.SelAvail then if Assigned(edt) and edt.SelAvail then
FD.FindText := edt.SelText; FD.FindText := edt.SelText;
@ -589,6 +613,35 @@ begin
end; end;
function TfWstTypeLibraryEdit.Search(const AText : string) : Boolean; function TfWstTypeLibraryEdit.Search(const AText : string) : Boolean;
begin
if ( FSearchArea = saEditor ) then
Result := SearchInEditor(AText)
else
Result := SearchInTree(AText);
end;
function TfWstTypeLibraryEdit.SearchInTree(const AText : string) : Boolean;
var
curLock : IInterface;
searchDir : TSearchDirection;
begin
curLock := SetCursorHourGlass();
if ( FFoundNode <> nil ) then
FFoundNode := FFoundNode.GetNext();
if ( frDown in FD.Options ) then
searchDir := sdForward
else
searchDir := sdbackward;
FFoundNode := SearchItem(AText,GetTypeNode(),FFoundNode,searchDir);
Result := ( FFoundNode <> nil );
if Result then begin
FFoundNode.Selected := True ;
FFoundNode.Focused := True ;
end;
curLock := nil;
end;
function TfWstTypeLibraryEdit.SearchInEditor(const AText : string) : Boolean;
var var
edt : TSynEdit; edt : TSynEdit;
opts : TSynSearchOptions; opts : TSynSearchOptions;
@ -610,7 +663,6 @@ end;
function TfWstTypeLibraryEdit.GetTypeNode(): TTreeNode; function TfWstTypeLibraryEdit.GetTypeNode(): TTreeNode;
begin begin
Result := trvSchema.Items[0].GetFirstChild().Items[0]; Result := trvSchema.Items[0].GetFirstChild().Items[0];
//trvSchema.TopItem.GetFirstChild().Items[0];
end; end;
function TfWstTypeLibraryEdit.GetInterfaceNode(): TTreeNode; function TfWstTypeLibraryEdit.GetInterfaceNode(): TTreeNode;

View File

@ -17,7 +17,7 @@ unit view_helper;
interface interface
uses uses
Classes, SysUtils, ComCtrls, Classes, SysUtils, ComCtrls, Contnrs,
pastree, pascal_parser_intf; pastree, pascal_parser_intf;
type type
@ -31,17 +31,59 @@ type
):TTreeNode; ):TTreeNode;
end; end;
TSearchDirection = ( sdForward, sdbackward );
TDependencyKind = ( dkProperty, dkAncestor, dkAliasedTo, dkArrayItem );
{ TDependendyInfo }
TDependendyInfo = class
private
FKind : TDependencyKind;
FPropName : string;
FUsingType : TPasType;
public
property UsingType : TPasType read FUsingType;
property Kind : TDependencyKind read FKind;
property PropName : string read FPropName;
end;
{ The function takes ownership of the "AFoundItem" parameter }
TOnFindDependencyFunc = function (AFoundItem : TDependendyInfo) : Boolean of object;
function FindPainter(AObj : TPasElement) : ISymbolPainter ; function FindPainter(AObj : TPasElement) : ISymbolPainter ;
function SearchItem(
const AName : string;
AParentNode,
AStartFrom : TTreeNode;
const ADirection : TSearchDirection
) : TTreeNode;
function XsdGenerateSourceForObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
) : string;
procedure DrawDependencies(
AView : TTreeView;
ADependencyList : TObjectList
);
procedure FindDependencies(
AType : TPasType;
ATree : TwstPasTreeContainer;
ADestList : TObjectList
);
function SetCursorHourGlass():IInterface; function SetCursorHourGlass():IInterface;
implementation implementation
uses Contnrs, Controls, Forms; uses
Controls, Forms
{$IFNDEF FPC}, xmldom, wst_delphi_xml{$ELSE}, DOM, wst_fpc_xml{$ENDIF}
, xsd_generator;
const const
IMG_TABLE = 0; IMG_TABLE = 0;
IMG_TYPES = 1; IMG_TYPES = 1;
IMG_CONST = 2; //IMG_CONST = 2;
IMG_TYPE_DEF = 4; IMG_TYPE_DEF = 4;
IMG_INTF_DEF = 5; IMG_INTF_DEF = 5;
//IMG_PROP_DEF = 6; //IMG_PROP_DEF = 6;
@ -70,6 +112,232 @@ begin
Application.ProcessMessages(); Application.ProcessMessages();
end; end;
type
{ TXsdGenerator }
TXsdGeneratorX = class(TXsdGenerator)
public
constructor Create(
const ADocument : TDOMDocument;
const AOptions : TGeneratorOptions;
ASymbolTable : TwstPasTreeContainer
);
end;
{ TXsdGeneratorX }
constructor TXsdGeneratorX.Create(
const ADocument : TDOMDocument;
const AOptions : TGeneratorOptions;
ASymbolTable : TwstPasTreeContainer
);
begin
inherited Create(ADocument,AOptions);
Prepare(ASymbolTable,ASymbolTable.CurrentModule);
end;
function XsdGenerateSourceForObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
) : string;
var
xsdGenerator : IXsdGenerator;
typeGenerator : IXsdTypeHandler;
doc : TXMLDocument;
locRes : string;
begin
if ( AObject = nil ) or ( Length(Trim(AObject.Name)) = 0 ) then begin
locRes := '';
end else begin
doc := CreateDoc();
try
xsdGenerator := TXsdGeneratorX.Create(doc,[],ASymbolTable);
if GetXsdTypeHandlerRegistry().Find(AObject,xsdGenerator,typeGenerator) then begin
typeGenerator.Generate(ASymbolTable,AObject,doc);
locRes := NodeToBuffer(doc);
end;
finally
ReleaseDomNode(doc);
end;
end;
Result := locRes;
end;
procedure DrawDependencies(
AView : TTreeView;
ADependencyList : TObjectList
);
function FindNode(AType : TPasType) : TTreeNode;
var
k : PtrInt;
nl : TTreeNodes;
begin
Result := nil;
nl := AView.Items;
for k := 0 to Pred(nl.Count) do begin
if ( TPasType(nl[k].Data) = AType ) then begin
Result := nl[k];
end;
end;
end;
var
i : PtrInt;
e : TDependendyInfo;
n : TTreeNode;
s : string;
begin
AView.Items.BeginUpdate();
try
AView.Items.Clear();
if ( ADependencyList.Count > 0 ) then begin
for i := 0 to Pred(ADependencyList.Count) do begin
e := TDependendyInfo(ADependencyList[i]);
n := FindNode(e.UsingType);
if ( n = nil ) then begin
n := AView.Items.Add(nil,e.UsingType.Name);
n.Data := e.UsingType;
end;
case e.Kind of
dkAliasedTo : s := 'Alias';
dkAncestor : s := 'Ancestor type';
dkArrayItem : s := 'Array Item type';
dkProperty : s := Format('Property = %s',[e.PropName]);
else
s := e.UsingType.Name;
end;
AView.Items.AddChild(n,s).Data := e;
end;
end;
finally
AView.Items.EndUpdate();
end;
end;
procedure FindDependencies(
AType : TPasType;
ATree : TwstPasTreeContainer;
ADestList : TObjectList
);
var
depInfo : TDependendyInfo;
extName : string;
function IsEqualTo(A : TPasType) : Boolean;
begin
Result := ( A <> nil ) and
( ( A = AType ) or
( A.InheritsFrom(TPasUnresolvedTypeRef) and
( ATree.GetExternalName(A) = extName )
)
);
end;
procedure ScanAliasType(AItem : TPasAliasType);
begin
if IsEqualTo(AItem.DestType) then begin
depInfo := TDependendyInfo.Create();
depInfo.FUsingType := AItem;
depInfo.FKind := dkAliasedTo;
ADestList.Add(depInfo);
end;
end;
procedure ScanArrayType(AItem : TPasArrayType);{$IFDEF USE_INLINE}inline;{$ENDIF}
begin
if IsEqualTo(AItem.ElType) then begin
depInfo := TDependendyInfo.Create();
depInfo.FUsingType := AItem;
depInfo.FKind := dkArrayItem;
ADestList.Add(depInfo);
end;
end;
procedure ScanClassType(AItem : TPasClassType);
var
b : Boolean;
k : PtrInt;
pl : TList;
m : TPasElement;
p : TPasProperty;
begin
if IsEqualTo(AItem.AncestorType) then begin
depInfo := TDependendyInfo.Create();
depInfo.FUsingType := AItem;
depInfo.FKind := dkAncestor;
ADestList.Add(depInfo);
end;
pl := AItem.Members;
if ( pl.Count > 0 ) then begin
for k := 0 to Pred(pl.Count) do begin
m := TPasElement(pl[k]);
if m.InheritsFrom(TPasProperty) then begin
p := TPasProperty(m);
if IsEqualTo(p.VarType) then begin
depInfo := TDependendyInfo.Create();
depInfo.FUsingType := AItem;
depInfo.FKind := dkProperty;
depInfo.FPropName := p.Name;
ADestList.Add(depInfo);
end;
end;
end;
end;
end;
procedure ScanRecordType(AItem : TPasRecordType);
var
b : Boolean;
k : PtrInt;
pl : TList;
m : TPasElement;
p : TPasVariable;
begin
pl := AItem.Members;
if ( pl.Count > 0 ) then begin
for k := 0 to Pred(pl.Count) do begin
m := TPasElement(pl[k]);
if m.InheritsFrom(TPasVariable) then begin
p := TPasVariable(m);
if IsEqualTo(p.VarType) then begin
depInfo := TDependendyInfo.Create();
depInfo.FUsingType := AItem;
depInfo.FKind := dkProperty;
depInfo.FPropName := p.Name;
ADestList.Add(depInfo);
end;
end;
end;
end;
end;
var
i, c : PtrInt;
list : TList;
e : TPasType;
begin
list := ATree.CurrentModule.InterfaceSection.Types;
c := list.Count;
if ( c > 0 ) then begin
extName := ATree.GetExternalName(AType);
for i := 0 to Pred(c) do begin
depInfo := nil;
e := TPasType(list[i]);
if e.InheritsFrom(TPasAliasType) then begin
ScanAliasType(TPasAliasType(e));
end else if e.InheritsFrom(TPasAliasType) then begin
ScanArrayType(TPasArrayType(e));
end else if e.InheritsFrom(TPasClassType) then begin
ScanClassType(TPasClassType(e));
end else if e.InheritsFrom(TPasRecordType) then begin
ScanRecordType(TPasRecordType(e));
end;
end;
end;
end;
function AddChildNode(AParent: TTreeNode; const AText : string):TTreeNode ; function AddChildNode(AParent: TTreeNode; const AText : string):TTreeNode ;
begin begin
Result := AParent.TreeNodes.AddChild(AParent,AText); Result := AParent.TreeNodes.AddChild(AParent,AText);
@ -78,6 +346,39 @@ begin
Result.SelectedIndex := -1; Result.SelectedIndex := -1;
end; end;
function SearchItem(
const AName : string;
AParentNode,
AStartFrom : TTreeNode;
const ADirection : TSearchDirection
) : TTreeNode;
var
e : TTreeNode;
ok : Boolean;
upperName : string;
begin
ok := False;
upperName := UpperCase(AName);
if ( AStartFrom <> nil ) then
e := AStartFrom
else
e := AParentNode.GetFirstChild();
while ( e <> nil ) do begin
if ( e.Data <> nil ) and ( Pos(upperName,UpperCase(TPasElement(e.Data).Name)) = 1 ) then begin
ok := True;
Break;
end;
if ( ADirection = sdForward ) then
e := e.GetNext()
else
e := e.GetPrev();
end;
if ok then
Result := e
else
Result := nil;
end;
{ TCursorHolder } { TCursorHolder }
constructor TCursorHolder.Create(const ACursor: TCursor); constructor TCursorHolder.Create(const ACursor: TCursor);
@ -379,7 +680,7 @@ function TPasNativeSimpleTypePainter.Paint(
): TTreeNode; ): TTreeNode;
var var
locObj : TPasNativeSimpleType; locObj : TPasNativeSimpleType;
boxeNode : TTreeNode; //boxeNode : TTreeNode;
begin begin
locObj := TPasNativeSimpleType(AObj); locObj := TPasNativeSimpleType(AObj);
Result := inherited Paint(AContainer, locObj, AParent); Result := inherited Paint(AContainer, locObj, AParent);