XSD schema import support : GUI handling, store relative fie name

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2993 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa 2014-05-03 15:27:53 +00:00
parent 42bf26f5f4
commit a0ef2a66bf
8 changed files with 634 additions and 349 deletions

View File

@ -22,6 +22,9 @@ uses
type
EWstEditException = class(Exception)
end;
TEditType = ( etCreate, etUpdate, etDelete, etClone );
{ TObjectUpdater }
@ -82,6 +85,11 @@ type
ASymbol : TwstPasTreeContainer
);
resourcestring
s_CantDeleteMainModule = 'Can not delete the main module : "%s".';
s_CantDeleteStillReferencedObject = 'Can not delete a still referenced Object : "%s".';
s_NoHandlerFound = 'No handler found.';
implementation
uses Contnrs, Forms, ufEnumedit, ufclassedit, uinterfaceedit, uprocedit,
@ -143,7 +151,7 @@ var
h : TObjectUpdaterClass;
begin
if not UpdaterRegistryInst.FindHandler(AObject,etUpdate,h) then begin
raise Exception.Create('No handler found.');
raise EWstEditException.Create('No handler found.');
end;
Result := h.UpdateObject(AObject,ASymbolTable);
end;
@ -156,7 +164,7 @@ var
h : TObjectUpdaterClass;
begin
if not UpdaterRegistryInst.FindHandler(AObject,etDelete,h) then begin
raise Exception.Create('No handler found.');
raise EWstEditException.Create('No handler found.');
end;
h.DeleteObject(AObject,ASymbolTable);
end;
@ -263,6 +271,10 @@ type
var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
):Boolean;override;
class procedure DeleteObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
);override;
end;
{ TBindingUpdater }
@ -380,7 +392,8 @@ end;
class function TModuleUpdater.CanHandle(AObject : TObject; const AEditAction : TEditType): Boolean;
begin
Result := ( inherited CanHandle(AObject,AEditAction) ) and AObject.InheritsFrom(TPasModule);
Result := (AObject <> nil) and (AEditAction <> etClone) and
AObject.InheritsFrom(TPasModule);
end;
class function TModuleUpdater.UpdateObject(
@ -400,6 +413,95 @@ begin
f.Release();
end;
end;
function IsDependentOn(AType : TPasType; AUnit : TPasModule) : Boolean;
var
locElement : TPasElement;
locList : TList2;
i : Integer;
locVar : TPasVariable;
begin
Result := False;
if (AType = nil) then
exit;
if AType.InheritsFrom(TPasEnumType) then
exit;
if (AType.Parent = AUnit.InterfaceSection) then
exit(True);
if AType.InheritsFrom(TPasAliasType) then begin
locElement := TPasAliasType(AType).DestType;
if (locElement <> nil) and IsDependentOn(TPasType(locElement),AUnit) then
exit(True);
end;
if AType.InheritsFrom(TPasClassType) then begin
locElement := TPasClassType(AType).AncestorType;
if (locElement <> nil) and IsDependentOn(TPasType(locElement),AUnit) then
exit(True);
locList := TPasClassType(AType).Members;
for i := 0 to locList.Count-1 do begin
locElement := TPasElement(locList[i]);
if locElement.InheritsFrom(TPasVariable) then begin
locVar := TPasVariable(locElement);
if (locVar.VarType <> nil) and IsDependentOn(locVar.VarType,AUnit) then
exit(True);
end;
end;
locList := TPasClassType(AType).ClassVars;
for i := 0 to locList.Count-1 do begin
locElement := TPasElement(locList[i]);
if locElement.InheritsFrom(TPasVariable) then begin
locVar := TPasVariable(locElement);
if (locVar.VarType <> nil) and IsDependentOn(locVar.VarType,AUnit) then
exit(True);
end;
end;
end;
if AType.InheritsFrom(TPasRecordType) then begin
locList := TPasClassType(AType).Members;
for i := 0 to locList.Count-1 do begin
locElement := TPasElement(locList[i]);
if locElement.InheritsFrom(TPasVariable) then begin
locVar := TPasVariable(locElement);
if (locVar.VarType <> nil) and IsDependentOn(locVar.VarType,AUnit) then
exit(True);
end;
end;
end;
end;
class procedure TModuleUpdater.DeleteObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
);
var
locModule : TPasModule;
i : Integer;
locTypes : TList2;
begin
locModule := AObject as TPasModule;
if (locModule = ASymbolTable.CurrentModule) then
raise EWstEditException.CreateFmt(s_CantDeleteMainModule,[locModule.Name]);
if (ASymbolTable.CurrentModule = nil) then
exit;
locTypes := ASymbolTable.CurrentModule.InterfaceSection.Types;
for i := 0 to locTypes.Count-1 do begin
if IsDependentOn(TPasType(locTypes[i]),locModule) then
raise EWstEditException.CreateFmt(s_CantDeleteStillReferencedObject,[locModule.Name]);
end;
if (locModule.RefCount > 0) and
(ASymbolTable.CurrentModule.InterfaceSection.UsesList.IndexOf(locModule) >= 0)
then begin
ASymbolTable.CurrentModule.InterfaceSection.UsesList.Extract(locModule);
locModule.Release();
if (locModule.RefCount = 0) and
(ASymbolTable.Package.Modules.IndexOf(locModule) >= 0)
then begin
ASymbolTable.Package.Modules.Extract(locModule);
locModule.Release();
end;
end;
end;
{ TArgumentUpdater }
@ -757,7 +859,9 @@ class function TObjectUpdater.CanHandle(
const AEditAction : TEditType
) : Boolean;
begin
Result := Assigned(AObject) and ( AEditAction <> etClone );
Result :=
(Assigned(AObject) and (AEditAction <> etClone)) and
(not(AObject.InheritsFrom(TPasModule)) or (AEditAction = etUpdate));
end;
class procedure TObjectUpdater.DeleteObject (
@ -767,13 +871,15 @@ class procedure TObjectUpdater.DeleteObject (
var
sct : TPasSection;
begin
if ( AObject <> nil ) then begin
sct := ASymbolTable.CurrentModule.InterfaceSection;
sct.Declarations.Extract(AObject);
sct.Types.Extract(AObject);
sct.Classes.Extract(AObject);
AObject.Release();
end;
if (AObject = nil) then
exit;
if (AObject.RefCount > 1) then
raise EWstEditException.CreateFmt(s_CantDeleteStillReferencedObject,[AObject.Name]);
sct := ASymbolTable.CurrentModule.InterfaceSection;
sct.Declarations.Extract(AObject);
sct.Types.Extract(AObject);
sct.Classes.Extract(AObject);
AObject.Release();
end;
procedure InternalFillList(

View File

@ -1,7 +1,7 @@
object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Left = 321
Left = 287
Height = 644
Top = 186
Top = 261
Width = 833
AllowDropFiles = True
Caption = '[Web Services Toolkit ] Type Library Editor'
@ -3447,66 +3447,66 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Style = tbsDivider
end
object ToolButton4: TToolButton
Left = 98
Left = 126
Top = 2
Action = actEnumCreate
end
object ToolButton5: TToolButton
Left = 121
Left = 149
Top = 2
Action = actCompoundCreate
end
object ToolButton6: TToolButton
Left = 144
Left = 172
Top = 2
Action = actRecordCreate
end
object ToolButton7: TToolButton
Left = 167
Left = 195
Top = 2
Action = actArrayCreate
end
object ToolButton8: TToolButton
Left = 190
Left = 218
Top = 2
Action = actTypeALiasCreate
end
object ToolButton10: TToolButton
Left = 218
Left = 246
Top = 2
Action = actClone
end
object ToolButton11: TToolButton
Left = 213
Left = 241
Top = 2
Width = 5
Caption = 'ToolButton11'
Style = tbsDivider
end
object ToolButton9: TToolButton
Left = 241
Left = 269
Top = 2
Action = actUpdateObject
end
object ToolButton12: TToolButton
Left = 264
Left = 292
Top = 2
Action = actDelete
end
object ToolButton13: TToolButton
Left = 310
Left = 338
Top = 2
Width = 5
Caption = 'ToolButton13'
Style = tbsDivider
end
object ToolButton14: TToolButton
Left = 315
Left = 343
Top = 2
Action = actIntfCreate
end
object ToolButton15: TToolButton
Left = 287
Left = 315
Top = 2
Action = actRefreshView
end
@ -3520,6 +3520,18 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Top = 2
Action = actNewFile
end
object ToolButton18: TToolButton
Left = 98
Top = 2
Action = actAddXsdImport
end
object ToolButton19: TToolButton
Left = 121
Top = 2
Width = 5
Caption = 'ToolButton19'
Style = tbsDivider
end
end
object MainMenu1: TMainMenu
Images = DM.IM
@ -3554,6 +3566,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Action = actSaveXSD
OnClick = actSaveXSDExecute
end
object MenuItem56: TMenuItem
Action = actAddXsdImport
end
object MenuItem17: TMenuItem
Caption = '-'
end
@ -3768,6 +3783,12 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
OnExecute = actCloneExecute
OnUpdate = actCloneUpdate
end
object actAddXsdImport: TAction
Caption = 'Add Schema Import'
ImageIndex = 2
OnExecute = actAddXsdImportExecute
OnUpdate = actAddXsdImportUpdate
end
end
object OD: TOpenDialog
Filter = 'wsdl files(*.wsdl)|*.wsdl|Pascal file (*.pas)|*.pas|XSD files ( *.xsd )|*.xsd|WDSL files(*.WSDL)|*.WSDL'
@ -4742,4 +4763,12 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
left = 576
top = 143
end
object odOpenXSD: TOpenDialog
Filter = 'XSD files ( *.xsd )|*.xsd'
FilterIndex = 0
InitialDir = '.\'
Options = [ofPathMustExist, ofFileMustExist, ofEnableSizing, ofViewDetail]
left = 416
top = 164
end
end

View File

@ -1,8 +1,8 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3'A'#1#6'Heig'
+'ht'#3#132#2#3'Top'#3#186#0#5'Width'#3'A'#3#14'AllowDropFiles'#9#7'Caption'#6
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#31#1#6'Heig'
+'ht'#3#132#2#3'Top'#3#5#1#5'Width'#3'A'#3#14'AllowDropFiles'#9#7'Caption'#6
+'+[Web Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'q'#2#11'Cl'
+'ientWidth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#11'OnDro'
+'pFiles'#7#13'FormDropFiles'#6'OnShow'#7#8'FormShow'#8'Position'#7#15'poDesk'
@ -780,299 +780,305 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ton'#11'ToolButton2'#4'Left'#2'F'#3'Top'#2#2#6'Action'#7#9'actExport'#0#0#11
+'TToolButton'#11'ToolButton3'#4'Left'#2']'#3'Top'#2#2#5'Width'#2#5#7'Caption'
+#6#11'ToolButton3'#5'Style'#7#10'tbsDivider'#0#0#11'TToolButton'#11'ToolButt'
+'on4'#4'Left'#2'b'#3'Top'#2#2#6'Action'#7#13'actEnumCreate'#0#0#11'TToolButt'
+'on'#11'ToolButton5'#4'Left'#2'y'#3'Top'#2#2#6'Action'#7#17'actCompoundCreat'
+'e'#0#0#11'TToolButton'#11'ToolButton6'#4'Left'#3#144#0#3'Top'#2#2#6'Action'
+#7#15'actRecordCreate'#0#0#11'TToolButton'#11'ToolButton7'#4'Left'#3#167#0#3
+'Top'#2#2#6'Action'#7#14'actArrayCreate'#0#0#11'TToolButton'#11'ToolButton8'
+#4'Left'#3#190#0#3'Top'#2#2#6'Action'#7#18'actTypeALiasCreate'#0#0#11'TToolB'
+'utton'#12'ToolButton10'#4'Left'#3#218#0#3'Top'#2#2#6'Action'#7#8'actClone'#0
+#0#11'TToolButton'#12'ToolButton11'#4'Left'#3#213#0#3'Top'#2#2#5'Width'#2#5#7
+'Caption'#6#12'ToolButton11'#5'Style'#7#10'tbsDivider'#0#0#11'TToolButton'#11
+'ToolButton9'#4'Left'#3#241#0#3'Top'#2#2#6'Action'#7#15'actUpdateObject'#0#0
+#11'TToolButton'#12'ToolButton12'#4'Left'#3#8#1#3'Top'#2#2#6'Action'#7#9'act'
+'Delete'#0#0#11'TToolButton'#12'ToolButton13'#4'Left'#3'6'#1#3'Top'#2#2#5'Wi'
+'dth'#2#5#7'Caption'#6#12'ToolButton13'#5'Style'#7#10'tbsDivider'#0#0#11'TTo'
+'olButton'#12'ToolButton14'#4'Left'#3';'#1#3'Top'#2#2#6'Action'#7#13'actIntf'
+'Create'#0#0#11'TToolButton'#12'ToolButton15'#4'Left'#3#31#1#3'Top'#2#2#6'Ac'
+'tion'#7#14'actRefreshView'#0#0#11'TToolButton'#12'ToolButton16'#4'Left'#2#24
+#3'Top'#2#2#6'Action'#7#11'actOpenFile'#0#0#11'TToolButton'#12'ToolButton17'
+#4'Left'#2#1#3'Top'#2#2#6'Action'#7#10'actNewFile'#0#0#0#9'TMainMenu'#9'Main'
+'Menu1'#6'Images'#7#5'DM.IM'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuItem'#9'Men'
+'uItem1'#7'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Action'#7#10
+'actNewFile'#7'OnClick'#7#17'actNewFileExecute'#0#0#9'TMenuItem'#9'MenuItem2'
+#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#11'actOpenFile'
+#7'OnClick'#7#18'actOpenFileExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'
+#7#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9'TMenuItem'#9'MenuIte'
+'m7'#6'Action'#7#7'actSave'#7'OnClick'#7#14'actSaveExecute'#0#0#9'TMenuItem'
+#10'MenuItem32'#6'Action'#7#9'actSaveAs'#7'OnClick'#7#16'actSaveAsExecute'#0
+#0#9'TMenuItem'#10'MenuItem53'#6'Action'#7#10'actSaveXSD'#7'OnClick'#7#17'ac'
+'tSaveXSDExecute'#0#0#9'TMenuItem'#10'MenuItem17'#7'Caption'#6#1'-'#0#0#9'TM'
+'enuItem'#9'MenuItem4'#6'Action'#7#7'actExit'#7'OnClick'#7#14'actExitExecute'
+#0#0#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5'&View'#0#9'TMenuItem'#10'M'
+'enuItem15'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExe'
+'cute'#0#0#9'TMenuItem'#10'MenuItem50'#6'Action'#7#13'actEditSearch'#7'OnCli'
+'ck'#7#20'actEditSearchExecute'#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6
+#1'-'#0#0#9'TMenuItem'#10'MenuItem30'#6'Action'#7#13'actFullExpand'#7'OnClic'
+'k'#7#20'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem31'#6'Action'#7#15
+'actFullCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#0#9'TMenuItem'
+#10'MenuItem10'#7'Caption'#6#8'&Edition'#0#9'TMenuItem'#10'MenuItem11'#6'Act'
+'ion'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuI'
+'tem'#10'MenuItem23'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCo'
+'mpoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem48'#6'Action'#7#15'actReco'
+'rdCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10'MenuI'
+'tem25'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0
+#0#9'TMenuItem'#10'MenuItem35'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21
+'actArrayCreateExecute'#0#0#9'TMenuItem'#10'MenuItem36'#6'Action'#7#18'actTy'
+'peALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'
+#10'MenuItem12'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem55'#6'Action'#7
+#8'actClone'#7'OnClick'#7#15'actCloneExecute'#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'ac'
+'tDelete'#7'OnClick'#7#16'actDeleteExecute'#0#0#0#9'TMenuItem'#9'MenuItem6'#6
+'Action'#7#8'actAbout'#7'Caption'#6#6'&About'#7'OnClick'#7#15'actAboutExecut'
+'e'#0#0#0#11'TActionList'#2'AL'#6'Images'#7#5'DM.IM'#4'left'#3'X'#1#3'top'#2
+'8'#0#7'TAction'#11'actOpenFile'#7'Caption'#6#9'Open File'#10'ImageIndex'#2
,#12#9'OnExecute'#7#18'actOpenFileExecute'#8'ShortCut'#3'O@'#0#0#7'TAction'#7
+'actExit'#7'Caption'#6#4'Exit'#10'ImageIndex'#2#15#9'OnExecute'#7#14'actExit'
+'Execute'#8'ShortCut'#3's@'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save'
+' generated files ...'#10'ImageIndex'#2#16#9'OnExecute'#7#16'actExportExecut'
+'e'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6
+#5'About'#10'ImageIndex'#2#17#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TActi'
+'on'#9'actSaveAs'#7'Caption'#6#11'Save As ...'#10'ImageIndex'#2#14#9'OnExecu'
+'te'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'
+#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#10'ImageIndex'#2#6#9
+'OnExecute'#7#20'actEnumCreateExecute'#8'OnUpdate'#7#19'actEnumCreateUpdate'
+#0#0#7'TAction'#15'actUpdateObject'#7'Caption'#6#6'Update'#7'Enabled'#8#10'I'
+'mageIndex'#2#20#9'OnExecute'#7#22'actUpdateObjectExecute'#8'OnUpdate'#7#21
+'actUpdateObjectUpdate'#0#0#7'TAction'#14'actRefreshView'#7'Caption'#6#14'&R'
+'efresh Views'#10'ImageIndex'#2#13#9'OnExecute'#7#21'actRefreshViewExecute'#8
+'ShortCut'#2't'#0#0#7'TAction'#10'actNewFile'#7'Caption'#6#8'New File'#10'Im'
+'ageIndex'#2#18#9'OnExecute'#7#17'actNewFileExecute'#8'ShortCut'#3'N@'#0#0#7
+'TAction'#17'actCompoundCreate'#7'Caption'#6#17'Create Class Type'#10'ImageI'
+'ndex'#2#4#9'OnExecute'#7#24'actCompoundCreateExecute'#8'OnUpdate'#7#19'actE'
+'numCreateUpdate'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create In'
+'terface'#10'ImageIndex'#2#5#9'OnExecute'#7#20'actIntfCreateExecute'#8'OnUpd'
+'ate'#7#19'actEnumCreateUpdate'#0#0#7'TAction'#13'actFullExpand'#7'Caption'#6
+#11'Full expand'#10'ImageIndex'#2#24#9'OnExecute'#7#20'actFullExpandExecute'
+#0#0#7'TAction'#15'actFullCollapse'#7'Caption'#6#13'Full Collapse'#10'ImageI'
+'ndex'#2#23#9'OnExecute'#7#22'actFullCollapseExecute'#0#0#7'TAction'#7'actSa'
+'ve'#7'Caption'#6#4'Save'#10'ImageIndex'#2#11#9'OnExecute'#7#14'actSaveExecu'
+'te'#8'ShortCut'#3'S@'#0#0#7'TAction'#9'actDelete'#7'Caption'#6#6'Delete'#7
+'Enabled'#8#10'ImageIndex'#2#21#9'OnExecute'#7#16'actDeleteExecute'#8'OnUpda'
+'te'#7#15'actDeleteUpdate'#0#0#7'TAction'#14'actArrayCreate'#7'Caption'#6#12
+'Create Array'#10'ImageIndex'#2#25#9'OnExecute'#7#21'actArrayCreateExecute'#8
+'OnUpdate'#7#19'actEnumCreateUpdate'#0#0#7'TAction'#18'actTypeALiasCreate'#7
+'Caption'#6#17'Create Type ALias'#10'ImageIndex'#2#28#9'OnExecute'#7#25'actT'
+'ypeALiasCreateExecute'#8'OnUpdate'#7#19'actEnumCreateUpdate'#0#0#7'TAction'
+#15'actRecordCreate'#7'Caption'#6#13'Create Record'#10'ImageIndex'#2#26#9'On'
+'Execute'#7#22'actRecordCreateExecute'#8'OnUpdate'#7#19'actEnumCreateUpdate'
+#0#0#7'TAction'#13'actEditSearch'#7'Caption'#6#6'Search'#10'ImageIndex'#2#19
+#9'OnExecute'#7#20'actEditSearchExecute'#8'OnUpdate'#7#19'actEditSearchUpdat'
+'e'#8'ShortCut'#3'F@'#0#0#7'TAction'#13'actTreeSearch'#7'Caption'#6#6'Search'
+#10'ImageIndex'#2#19#9'OnExecute'#7#20'actTreeSearchExecute'#8'OnUpdate'#7#19
+'actTreeSearchUpdate'#0#0#7'TAction'#10'actSaveXSD'#7'Caption'#6#20'Save as '
+'XSD file ...'#10'ImageIndex'#2#11#9'OnExecute'#7#17'actSaveXSDExecute'#0#0#7
+'on4'#4'Left'#2'~'#3'Top'#2#2#6'Action'#7#13'actEnumCreate'#0#0#11'TToolButt'
+'on'#11'ToolButton5'#4'Left'#3#149#0#3'Top'#2#2#6'Action'#7#17'actCompoundCr'
+'eate'#0#0#11'TToolButton'#11'ToolButton6'#4'Left'#3#172#0#3'Top'#2#2#6'Acti'
+'on'#7#15'actRecordCreate'#0#0#11'TToolButton'#11'ToolButton7'#4'Left'#3#195
+#0#3'Top'#2#2#6'Action'#7#14'actArrayCreate'#0#0#11'TToolButton'#11'ToolButt'
+'on8'#4'Left'#3#218#0#3'Top'#2#2#6'Action'#7#18'actTypeALiasCreate'#0#0#11'T'
+'ToolButton'#12'ToolButton10'#4'Left'#3#246#0#3'Top'#2#2#6'Action'#7#8'actCl'
+'one'#0#0#11'TToolButton'#12'ToolButton11'#4'Left'#3#241#0#3'Top'#2#2#5'Widt'
+'h'#2#5#7'Caption'#6#12'ToolButton11'#5'Style'#7#10'tbsDivider'#0#0#11'TTool'
+'Button'#11'ToolButton9'#4'Left'#3#13#1#3'Top'#2#2#6'Action'#7#15'actUpdateO'
+'bject'#0#0#11'TToolButton'#12'ToolButton12'#4'Left'#3'$'#1#3'Top'#2#2#6'Act'
+'ion'#7#9'actDelete'#0#0#11'TToolButton'#12'ToolButton13'#4'Left'#3'R'#1#3'T'
+'op'#2#2#5'Width'#2#5#7'Caption'#6#12'ToolButton13'#5'Style'#7#10'tbsDivider'
+#0#0#11'TToolButton'#12'ToolButton14'#4'Left'#3'W'#1#3'Top'#2#2#6'Action'#7
+#13'actIntfCreate'#0#0#11'TToolButton'#12'ToolButton15'#4'Left'#3';'#1#3'Top'
+#2#2#6'Action'#7#14'actRefreshView'#0#0#11'TToolButton'#12'ToolButton16'#4'L'
+'eft'#2#24#3'Top'#2#2#6'Action'#7#11'actOpenFile'#0#0#11'TToolButton'#12'Too'
+'lButton17'#4'Left'#2#1#3'Top'#2#2#6'Action'#7#10'actNewFile'#0#0#11'TToolBu'
+'tton'#12'ToolButton18'#4'Left'#2'b'#3'Top'#2#2#6'Action'#7#15'actAddXsdImpo'
+'rt'#0#0#11'TToolButton'#12'ToolButton19'#4'Left'#2'y'#3'Top'#2#2#5'Width'#2
+#5#7'Caption'#6#12'ToolButton19'#5'Style'#7#10'tbsDivider'#0#0#0#9'TMainMenu'
+#9'MainMenu1'#6'Images'#7#5'DM.IM'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuItem'
+#9'MenuItem1'#7'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Action'
+#7#10'actNewFile'#7'OnClick'#7#17'actNewFileExecute'#0#0#9'TMenuItem'#9'Menu'
+'Item2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#11'actOp'
+'enFile'#7'OnClick'#7#18'actOpenFileExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6
+'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9'TMenuItem'#9
+'MenuItem7'#6'Action'#7#7'actSave'#7'OnClick'#7#14'actSaveExecute'#0#0#9'TMe'
+'nuItem'#10'MenuItem32'#6'Action'#7#9'actSaveAs'#7'OnClick'#7#16'actSaveAsEx'
+'ecute'#0#0#9'TMenuItem'#10'MenuItem53'#6'Action'#7#10'actSaveXSD'#7'OnClick'
+#7#17'actSaveXSDExecute'#0#0#9'TMenuItem'#10'MenuItem56'#6'Action'#7#15'actA'
+'ddXsdImport'#0#0#9'TMenuItem'#10'MenuItem17'#7'Caption'#6#1'-'#0#0#9'TMenuI'
+'tem'#9'MenuItem4'#6'Action'#7#7'actExit'#7'OnClick'#7#14'actExitExecute'#0#0
+#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5'&View'#0#9'TMenuItem'#10'MenuI'
+'tem15'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecute'
+#0#0#9'TMenuItem'#10'MenuItem50'#6'Action'#7#13'actEditSearch'#7'OnClick'#7
+#20'actEditSearchExecute'#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6#1'-'#0
+#0#9'TMenuItem'#10'MenuItem30'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20
+'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem31'#6'Action'#7#15'actFul'
+'lCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#0#9'TMenuItem'#10'Me'
+'nuItem10'#7'Caption'#6#8'&Edition'#0#9'TMenuItem'#10'MenuItem11'#6'Action'#7
+#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10
+'MenuItem23'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCr'
+'eateExecute'#0#0#9'TMenuItem'#10'MenuItem48'#6'Action'#7#15'actRecordCreate'
+#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem25'#6'A'
+'ction'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMen'
+'uItem'#10'MenuItem35'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArr'
+'ayCreateExecute'#0#0#9'TMenuItem'#10'MenuItem36'#6'Action'#7#18'actTypeALia'
+'sCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'Men'
+'uItem12'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem55'#6'Action'#7#8'ac'
+'tClone'#7'OnClick'#7#15'actCloneExecute'#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'#6'Images'#7#5'DM.IM'#4'left'#3'X'#1#3'top'#2'8'
+#0#7'TAction'#11'actOpenFile'#7'Caption'#6#9'Open File'#10'ImageIndex'#2#12#9
+'OnExecute'#7#18'actOpenFileExecute'#8'ShortCut'#3'O@'#0#0#7'TAction'#7'actE'
+'xit'#7'Caption'#6#4'Exit'#10'ImageIndex'#2#15#9'OnExecute'#7#14'actExitExec'
+'ute'#8'ShortCut'#3's@'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save gen'
+'erated files ...'#10'ImageIndex'#2#16#9'OnExecute'#7#16'actExportExecute'#8
+'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'A'
+'bout'#10'ImageIndex'#2#17#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TAction'
+#9'actSaveAs'#7'Caption'#6#11'Save As ...'#10'ImageIndex'#2#14#9'OnExecute'#7
+#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#13'ac'
+'tEnumCreate'#7'Caption'#6#18'Create Enumeration'#10'ImageIndex'#2#6#9'OnExe'
+'cute'#7#20'actEnumCreateExecute'#8'OnUpdate'#7#19'actEnumCreateUpdate'#0#0#7
+'TAction'#15'actUpdateObject'#7'Caption'#6#6'Update'#7'Enabled'#8#10'ImageIn'
+'dex'#2#20#9'OnExecute'#7#22'actUpdateObjectExecute'#8'OnUpdate'#7#21'actUpd'
+'ateObjectUpdate'#0#0#7'TAction'#14'actRefreshView'#7'Caption'#6#14'&Refresh'
+' Views'#10'ImageIndex'#2#13#9'OnExecute'#7#21'actRefreshViewExecute'#8'Shor'
+'tCut'#2't'#0#0#7'TAction'#10'actNewFile'#7'Caption'#6#8'New File'#10'ImageI'
+'ndex'#2#18#9'OnExecute'#7#17'actNewFileExecute'#8'ShortCut'#3'N@'#0#0#7'TAc'
+'tion'#17'actCompoundCreate'#7'Caption'#6#17'Create Class Type'#10'ImageInde'
+'x'#2#4#9'OnExecute'#7#24'actCompoundCreateExecute'#8'OnUpdate'#7#19'actEnum'
+'CreateUpdate'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Inter'
+'face'#10'ImageIndex'#2#5#9'OnExecute'#7#20'actIntfCreateExecute'#8'OnUpdate'
+#7#19'actEnumCreateUpdate'#0#0#7'TAction'#13'actFullExpand'#7'Caption'#6#11
+'Full expand'#10'ImageIndex'#2#24#9'OnExecute'#7#20'actFullExpandExecute'#0#0
+#7'TAction'#15'actFullCollapse'#7'Caption'#6#13'Full Collapse'#10'ImageIndex'
+#2#23#9'OnExecute'#7#22'actFullCollapseExecute'#0#0#7'TAction'#7'actSave'#7
+'Caption'#6#4'Save'#10'ImageIndex'#2#11#9'OnExecute'#7#14'actSaveExecute'#8
+'ShortCut'#3'S@'#0#0#7'TAction'#9'actDelete'#7'Caption'#6#6'Delete'#7'Enable'
+'d'#8#10'ImageIndex'#2#21#9'OnExecute'#7#16'actDeleteExecute'#8'OnUpdate'#7
+#15'actDeleteUpdate'#0#0#7'TAction'#14'actArrayCreate'#7'Caption'#6#12'Creat'
+'e Array'#10'ImageIndex'#2#25#9'OnExecute'#7#21'actArrayCreateExecute'#8'OnU'
+'pdate'#7#19'actEnumCreateUpdate'#0#0#7'TAction'#18'actTypeALiasCreate'#7'Ca'
+'ption'#6#17'Create Type ALias'#10'ImageIndex'#2#28#9'OnExecute'#7#25'actTyp'
+'eALiasCreateExecute'#8'OnUpdate'#7#19'actEnumCreateUpdate'#0#0#7'TAction'#15
+'actRecordCreate'#7'Caption'#6#13'Create Record'#10'ImageIndex'#2#26#9'OnExe'
+'cute'#7#22'actRecordCreateExecute'#8'OnUpdate'#7#19'actEnumCreateUpdate'#0#0
+#7'TAction'#13'actEditSearch'#7'Caption'#6#6'Search'#10'ImageIndex'#2#19#9'O'
+'nExecute'#7#20'actEditSearchExecute'#8'OnUpdate'#7#19'actEditSearchUpdate'#8
+'ShortCut'#3'F@'#0#0#7'TAction'#13'actTreeSearch'#7'Caption'#6#6'Search'#10
+'ImageIndex'#2#19#9'OnExecute'#7#20'actTreeSearchExecute'#8'OnUpdate'#7#19'a'
+'ctTreeSearchUpdate'#0#0#7'TAction'#10'actSaveXSD'#7'Caption'#6#20'Save as X'
+'SD file ...'#10'ImageIndex'#2#11#9'OnExecute'#7#17'actSaveXSDExecute'#0#0#7
+'TAction'#8'actClone'#7'Caption'#6#5'Clone'#10'ImageIndex'#2#27#9'OnExecute'
+#7#15'actCloneExecute'#8'OnUpdate'#7#14'actCloneUpdate'#0#0#0#11'TOpenDialog'
+#2'OD'#6'Filter'#6'gwsdl files(*.wsdl)|*.wsdl|Pascal file (*.pas)|*.pas|XSD '
+'files ( *.xsd )|*.xsd|WDSL files(*.WSDL)|*.WSDL'#10'InitialDir'#6#2'.\'#7'O'
+'ptions'#11#15'ofPathMustExist'#15'ofFileMustExist'#14'ofEnableSizing'#12'of'
+'ViewDetail'#0#4'left'#3#153#1#3'top'#2'X'#0#0#10'TSynPasSyn'#10'SynPasSyn1'
+#7'Enabled'#8#19'AsmAttri.FrameEdges'#7#9'sfeAround'#23'CommentAttri.Foregro'
+'und'#7#6'clBlue'#23'CommentAttri.FrameEdges'#7#9'sfeAround'#18'CommentAttri'
+'.Style'#11#6'fsBold'#0#28'IDEDirectiveAttri.FrameEdges'#7#9'sfeAround'#26'I'
+'dentifierAttri.FrameEdges'#7#9'sfeAround'#19'KeyAttri.FrameEdges'#7#9'sfeAr'
+'ound'#22'NumberAttri.FrameEdges'#7#9'sfeAround'#21'SpaceAttri.FrameEdges'#7
+#9'sfeAround'#22'StringAttri.Foreground'#7#8'clMaroon'#22'StringAttri.FrameE'
+'dges'#7#9'sfeAround'#22'SymbolAttri.FrameEdges'#7#9'sfeAround'#17'SymbolAtt'
+'ri.Style'#11#6'fsBold'#0#25'CaseLabelAttri.FrameEdges'#7#9'sfeAround'#25'Di'
+'rectiveAttri.Foreground'#7#7'clGreen'#25'DirectiveAttri.FrameEdges'#7#9'sfe'
+'Around'#20'DirectiveAttri.Style'#11#6'fsBold'#0#12'CompilerMode'#7#9'pcmDel'
+'phi'#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'Owsdl files (*.wsdl)|*.wsdl|XSD f'
+'iles ( *.xsd )|*.xsd|WDSL files (*.WDSL)|*.WDSL'#11'FilterIndex'#2#0#7'Opti'
+'ons'#11#15'ofPathMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3
+#242#1#3'top'#3#176#0#0#0#10'TPopupMenu'#10'PopupMenu1'#6'Images'#7#5'DM.IM'
+#4'left'#3#152#0#3'top'#3#152#0#0#9'TMenuItem'#10'MenuItem28'#6'Action'#7#13
+'actFullExpand'#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0
+#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0
,#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#7#15'actCloneExecute'#8'OnUpdate'#7#14'actCloneUpdate'#0#0#7'TAction'#15'ac'
+'tAddXsdImport'#7'Caption'#6#17'Add Schema Import'#10'ImageIndex'#2#2#9'OnEx'
+'ecute'#7#22'actAddXsdImportExecute'#8'OnUpdate'#7#21'actAddXsdImportUpdate'
+#0#0#0#11'TOpenDialog'#2'OD'#6'Filter'#6'gwsdl files(*.wsdl)|*.wsdl|Pascal f'
+'ile (*.pas)|*.pas|XSD files ( *.xsd )|*.xsd|WDSL files(*.WSDL)|*.WSDL'#10'I'
+'nitialDir'#6#2'.\'#7'Options'#11#15'ofPathMustExist'#15'ofFileMustExist'#14
+'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#153#1#3'top'#2'X'#0#0#10'TSynP'
+'asSyn'#10'SynPasSyn1'#7'Enabled'#8#19'AsmAttri.FrameEdges'#7#9'sfeAround'#23
+'CommentAttri.Foreground'#7#6'clBlue'#23'CommentAttri.FrameEdges'#7#9'sfeAro'
+'und'#18'CommentAttri.Style'#11#6'fsBold'#0#28'IDEDirectiveAttri.FrameEdges'
+#7#9'sfeAround'#26'IdentifierAttri.FrameEdges'#7#9'sfeAround'#19'KeyAttri.Fr'
+'ameEdges'#7#9'sfeAround'#22'NumberAttri.FrameEdges'#7#9'sfeAround'#21'Space'
+'Attri.FrameEdges'#7#9'sfeAround'#22'StringAttri.Foreground'#7#8'clMaroon'#22
+'StringAttri.FrameEdges'#7#9'sfeAround'#22'SymbolAttri.FrameEdges'#7#9'sfeAr'
+'ound'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'CaseLabelAttri.FrameEdges'#7#9
+'sfeAround'#25'DirectiveAttri.Foreground'#7#7'clGreen'#25'DirectiveAttri.Fra'
+'meEdges'#7#9'sfeAround'#20'DirectiveAttri.Style'#11#6'fsBold'#0#12'Compiler'
+'Mode'#7#9'pcmDelphi'#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'Owsdl files (*.wsd'
,'l)|*.wsdl|XSD files ( *.xsd )|*.xsd|WDSL files (*.WDSL)|*.WDSL'#11'FilterIn'
+'dex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEnableSizing'#12'ofViewDeta'
+'il'#0#4'left'#3#242#1#3'top'#3#176#0#0#0#10'TPopupMenu'#10'PopupMenu1'#6'Im'
+'ages'#7#5'DM.IM'#4'left'#3#152#0#3'top'#3#152#0#0#9'TMenuItem'#10'MenuItem2'
+'8'#6'Action'#7#13'actFullExpand'#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4
+#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'
+#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#255#0#0#255#255#0#0#255
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#255#0#0#255
+#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255
+#0#0#255#255#0#0#255#255#0#0#255#255#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#153'['#30#196#150'X'#26#201#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#134#134#136#255#134#134#136#255#134#134#136#255
+#134#134#136#255#159'c'''#207#175'xA'#255#173'u='#255#151'Y'#27#209#134#134
+#136#255#134#134#136#255#134#134#136#255#134#134#136#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#171'r:'#6
+#168'n5'#217#181#128'K'#255#204#163'z'#255#204#163'z'#255#174'v?'#255#151'Y'
+#27#219#149'W'#25#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#175'xA'#184#172't<'
+#247#193#146'c'#255#206#166'~'#255#205#164'|'#255#177'zD'#255#154'] '#247#152
+'Z'#29#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#134#134#136#255#134#134#136#255#134#134#136#255#134#134
+#136#255#181#128'K'#255#208#169#131#255#207#168#129#255#162'f+'#255#134#134
+#136#255#134#134#136#255#134#134#136#255#134#134#136#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#177'zD'#255#210#172#135#255#209#171#133#255#166'l2'#255
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#183#131'O'#255#211#174#138#255#211#174#138#255#171'r:'
+#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#134#134#136#255#134#134#136#255
+#134#134#136#255#134#134#136#255#190#147'i'#255#210#181#151#255#209#179#148
+#255#182#135'W'#255#134#134#136#255#134#134#136#255#134#134#136#255#134#134
+#136#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#194#154'q'#255#212#184#156#255
+#211#182#153#255#186#141'a'#255#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#196#157'u'#255#213#185#158
+#255#212#184#156#255#189#146'g'#255#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#134
+#134#136#255#134#134#136#255#134#134#136#255#134#134#136#255#197#158'w'#255
+#197#158'w'#255#194#154'q'#255#193#152'n'#255#134#134#136#255#134#134#136#255
+#134#134#136#255#134#134#136#255#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7
+#20'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem27'#6'Action'#7#15'act'
+'FullCollapse'#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0
+#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0
+#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#134#134#136#255#134#134#136#255#134
+#134#136#255#134#134#136#255#197#158'w'#255#197#158'w'#255#194#154'q'#255#193
+#152'n'#255#134#134#136#255#134#134#136#255#134#134#136#255#134#134#136#255
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#196#157'u'#255#213#185#158#255#212#184
+#156#255#189#146'g'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#194#154'q'#255#212#184#156#255#211#182
+#153#255#186#141'a'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#134#134#136#255
+#134#134#136#255#134#134#136#255#134#134#136#255#190#147'i'#255#210#181#151
+#255#209#179#148#255#182#135'W'#255#134#134#136#255#134#134#136#255#134#134
+#136#255#134#134#136#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#183#131'O'#255
+#211#174#138#255#211#174#138#255#171'r:'#255#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#177'zD'#255
+#210#172#135#255#209#171#133#255#166'l2'#255#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#134#134#136#255#134#134#136#255#134#134#136#255#134#134#136#255#181
+#128'K'#255#208#169#131#255#207#168#129#255#162'f+'#255#134#134#136#255#134
+#134#136#255#134#134#136#255#134#134#136#255#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#175'xA'#184#172't<'#247
+#193#146'c'#255#206#166'~'#255#205#164'|'#255#177'zD'#255#154'] '#247#152'Z'
+#29#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#171'r:'#6#168'n5'#217#181#128'K'
+#255#204#163'z'#255#204#163'z'#255#174'v?'#255#151'Y'#27#219#149'W'#25#6#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#134#134#136#255#134#134#136#255#134#134#136#255#134#134#136#255#159'c'
+''''#207#175'xA'#255#173'u='#255#151'Y'#27#209#134#134#136#255#134#134#136
+#255#134#134#136#255#134#134#136#255#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#153'['#30#196#150'X'#26#201#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#134#134#136#255#134#134#136#255#134#134#136#255#134#134#136
+#255#159'c'''#207#175'xA'#255#173'u='#255#151'Y'#27#209#134#134#136#255#134
+#134#136#255#134#134#136#255#134#134#136#255#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#171'r:'#6#168'n5'#217
+#181#128'K'#255#204#163'z'#255#204#163'z'#255#174'v?'#255#151'Y'#27#219#149
+'W'#25#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#175'xA'#184#172't<'#247#193#146
+'c'#255#206#166'~'#255#205#164'|'#255#177'zD'#255#154'] '#247#152'Z'#29#187
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#134#134#136#255#134#134#136#255#134#134#136#255#134#134#136#255
+#181#128'K'#255#208#169#131#255#207#168#129#255#162'f+'#255#134#134#136#255
+#134#134#136#255#134#134#136#255#134#134#136#255#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#177'zD'#255#210#172#135#255#209#171#133#255#166'l2'#255#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#183#131'O'#255#211#174#138#255#211#174#138#255#171'r:'#255#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#134#134#136#255#134#134#136#255#134#134#136#255
+#134#134#136#255#190#147'i'#255#210#181#151#255#209#179#148#255#182#135'W'
+#255#134#134#136#255#134#134#136#255#134#134#136#255#134#134#136#255#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#194#154'q'#255#212#184#156#255#211#182#153#255
+#186#141'a'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#196#157'u'#255#213#185#158#255#212#184#156
+#255#189#146'g'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#134#134#136#255#134
+#134#136#255#134#134#136#255#134#134#136#255#197#158'w'#255#197#158'w'#255
+#194#154'q'#255#193#152'n'#255#134#134#136#255#134#134#136#255#134#134#136
+#255#134#134#136#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7#20'actFullExpa'
+'ndExecute'#0#0#9'TMenuItem'#10'MenuItem27'#6'Action'#7#15'actFullCollapse'
+#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16
+#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#134#134#136#255#134#134#136#255#134#134#136#255
+#134#134#136#255#197#158'w'#255#197#158'w'#255#194#154'q'#255#193#152'n'#255
+#134#134#136#255#134#134#136#255#134#134#136#255#134#134#136#255#255#255#255
+#255#255#255#0#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0
+#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0
+#255#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#196#157'u'#255#213#185#158#255#212#184#156#255#189
+#146'g'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#194#154'q'#255#212#184#156#255#211#182#153#255
+#186#141'a'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#134#134#136#255#134#134
+#136#255#134#134#136#255#134#134#136#255#190#147'i'#255#210#181#151#255#209
+#179#148#255#182#135'W'#255#134#134#136#255#134#134#136#255#134#134#136#255
+#134#134#136#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#183#131'O'#255#211#174
+#138#255#211#174#138#255#171'r:'#255#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#177'zD'#255#210#172#135
+#255#209#171#133#255#166'l2'#255#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#134
+#134#136#255#134#134#136#255#134#134#136#255#134#134#136#255#181#128'K'#255
+#208#169#131#255#207#168#129#255#162'f+'#255#134#134#136#255#134#134#136#255
+#134#134#136#255#134#134#136#255#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#175'xA'#184#172't<'#247#193#146'c'
+#255#206#166'~'#255#205#164'|'#255#177'zD'#255#154'] '#247#152'Z'#29#187#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#171'r:'#6#168'n5'#217#181#128'K'#255#204
+#163'z'#255#204#163'z'#255#174'v?'#255#151'Y'#27#219#149'W'#25#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#134
+#134#136#255#134#134#136#255#134#134#136#255#134#134#136#255#159'c'''#207#175
+'xA'#255#173'u='#255#151'Y'#27#209#134#134#136#255#134#134#136#255#134#134
+#136#255#134#134#136#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#153'['#30#196#150'X'#26#201#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255
+#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7#22'actFullCollapseExecute'#0
+#0#9'TMenuItem'#10'MenuItem39'#6'Action'#7#14'actRefreshView'#11'Bitmap.Data'
+#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0
+#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#164
+'e4'#162#164'e4'#1#255#255#255#0#255#255#255#0#164'e4'#5#164'e4S'#167'j:'#190
+#166'i8'#233#164'f5'#250#167'j:'#228#167'k;'#170#164'e4$'#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#164'e4'#255#165'g6'#147#255#255#255#0
+#164'e4T'#166'g7'#238#181#128'U'#243#206#166#132#255#216#182#151#255#219#185
+#153#255#211#172#138#255#194#148'm'#252#166'h8'#246#164'f5['#255#255#255#0
+#255#255#255#0#255#255#255#0#165'g7'#254#183#132'['#247#165'g6'#212#177'zN'
+#244#227#202#180#255#236#218#201#255#231#209#188#255#227#201#176#255#222#190
+#160#255#210#171#136#255#206#165#130#255#211#174#142#255#166'h8'#245#164'e4*'
+#255#255#255#0#255#255#255#0#166'h8'#253#241#228#216#255#212#178#149#254#244
+#233#224#255#243#232#221#255#237#220#204#255#210#173#143#254#176'xL'#245#165
+'f5'#251#166'i9'#255#166'i9'#254#169'm='#255#176'xL'#255#167'j:'#168#255#255
+#255#0#255#255#255#0#165'g7'#253#246#238#230#255#245#236#227#255#245#237#228
+#255#230#210#193#255#176'yM'#245#166'i8'#202#164'e46'#255#255#255#0#164'e4j'
+#169'k<'#237#182'|O'#255#167'j:'#254#165'h7'#250#255#255#255#0#255#255#255#0
+#164'f5'#252#246#238#230#255#235#215#196#255#234#217#201#255#164'e4'#254#164
+'e4j'#255#255#255#0#255#255#255#0#255#255#255#0#164'e4'#11#165'f5'#233#201
+#149'l'#141#183#127'S'#194#164'e4'#255#164'e4'#5#255#255#255#0#164'e4'#252
+#245#237#229#255#246#237#229#255#245#236#228#255#215#183#156#253#166'h7'#224
,#164'e4'#16#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#213#164
+'~'#26#205#153'r9'#164'e4'#252#164'e4'#12#255#255#255#0#164'e4'#249#164'e4'
+#254#164'e4'#254#164'e4'#253#164'e4'#252#164'e4'#251#164'e4'#185#164'e4'#29
+#164'e4'#24#164'e4'#24#164'e4'#24#164'e4'#24#164'e4'#24#164'e4'#28#255#255
+#255#0#255#255#255#0#164'e4'#13#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#164'e4'#160#164'e4'#255#173'tG'#248
+#175'wL'#247#175'wL'#247#175'xL'#247#164'e4'#255#164'e4'#8#255#255#255#0#164
+'e4'#252#179'yL~'#207#157'v+'#187#131'W'#19#164'e4'#2#255#255#255#0#255#255
+#255#0#164'e4'#4#166'h8'#196#208#172#143#250#246#238#231#255#242#230#219#255
+#246#238#230#255#166'j:'#251#164'e4'#9#255#255#255#0#164'e5'#254#167'j:'#251
+#199#145'h'#157#165'g7'#230#164'e4#'#255#255#255#0#255#255#255#0#255#255#255
+#0#164'e4`'#164'f5'#255#233#215#199#255#235#216#198#255#245#236#227#255#166
+'j:'#250#164'e4'#10#255#255#255#0#166'h8'#243#171'pA'#255#169'l<'#254#167'j:'
+#245#164'e4u'#164'e4'#25#164'e4E'#166'i8'#205#185#136'a'#245#235#219#205#255
+#245#235#226#255#246#238#230#255#246#238#230#255#167'j:'#250#164'e4'#11#255
+#255#255#0#167'i9'#155#192#144'i'#253#197#152'r'#255#168'k<'#255#164'f5'#255
+#167'j:'#252#183#133']'#243#217#187#161#254#241#228#216#255#242#230#219#255
+#243#232#221#255#206#167#136#253#234#216#200#255#167'j:'#249#164'e4'#13#255
+#255#255#0#164'e4)'#166'i9'#245#211#173#140#255#220#189#157#255#221#190#161
+#255#229#203#180#255#233#211#191#255#238#221#204#255#240#226#213#255#231#210
+#191#255#175'wK'#245#165'g6'#192#171'qC'#247#164'f5'#252#164'e4'#14#255#255
+#255#0#255#255#255#0#164'e5P'#166'h8'#246#192#144'h'#250#211#176#143#255#223
+#194#168#255#222#193#168#255#212#177#147#255#185#135'_'#244#165'g7'#240#164
+'e4X'#255#255#255#0#164'f5f'#164'e4'#255#164'e4'#15#255#255#255#0#255#255#255
+#0#255#255#255#0#164'e4'#29#167'i:'#159#167'j:'#222#165'g6'#246#167'i9'#229
+#167'j:'#188#164'e4S'#164'e4'#5#255#255#255#0#255#255#255#0#255#255#255#0#164
+'e4y'#164'e4'#16#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10
+'MenuItem26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem51'#6'Action'#7#13
+'actTreeSearch'#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0
+#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0
+#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#7'OnClick'#7#22'actFullCollapseExecute'#0#0#9'T'
+'MenuItem'#10'MenuItem39'#6'Action'#7#14'actRefreshView'#11'Bitmap.Data'#10
+':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0
+' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#164'e4'
+#162#164'e4'#1#255#255#255#0#255#255#255#0#164'e4'#5#164'e4S'#167'j:'#190#166
+'i8'#233#164'f5'#250#167'j:'#228#167'k;'#170#164'e4$'#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#164'e4'#255#165'g6'#147#255#255#255#0#164
+'e4T'#166'g7'#238#181#128'U'#243#206#166#132#255#216#182#151#255#219#185#153
+#255#211#172#138#255#194#148'm'#252#166'h8'#246#164'f5['#255#255#255#0#255
+#255#255#0#255#255#255#0#165'g7'#254#183#132'['#247#165'g6'#212#177'zN'#244
+#227#202#180#255#236#218#201#255#231#209#188#255#227#201#176#255#222#190#160
+#255#210#171#136#255#206#165#130#255#211#174#142#255#166'h8'#245#164'e4*'#255
+#255#255#0#255#255#255#0#166'h8'#253#241#228#216#255#212#178#149#254#244#233
+#224#255#243#232#221#255#237#220#204#255#210#173#143#254#176'xL'#245#165'f5'
+#251#166'i9'#255#166'i9'#254#169'm='#255#176'xL'#255#167'j:'#168#255#255#255
+#0#255#255#255#0#165'g7'#253#246#238#230#255#245#236#227#255#245#237#228#255
+#230#210#193#255#176'yM'#245#166'i8'#202#164'e46'#255#255#255#0#164'e4j'#169
+'k<'#237#182'|O'#255#167'j:'#254#165'h7'#250#255#255#255#0#255#255#255#0#164
+'f5'#252#246#238#230#255#235#215#196#255#234#217#201#255#164'e4'#254#164'e4j'
+#255#255#255#0#255#255#255#0#255#255#255#0#164'e4'#11#165'f5'#233#201#149'l'
+#141#183#127'S'#194#164'e4'#255#164'e4'#5#255#255#255#0#164'e4'#252#245#237
+#229#255#246#237#229#255#245#236#228#255#215#183#156#253#166'h7'#224#164'e4'
+#16#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#213#164'~'#26#205
+#153'r9'#164'e4'#252#164'e4'#12#255#255#255#0#164'e4'#249#164'e4'#254#164'e4'
+#254#164'e4'#253#164'e4'#252#164'e4'#251#164'e4'#185#164'e4'#29#164'e4'#24
+#164'e4'#24#164'e4'#24#164'e4'#24#164'e4'#24#164'e4'#28#255#255#255#0#255#255
+#255#0#164'e4'#13#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#164'e4'#160#164'e4'#255#173'tG'#248#175'wL'#247#175
,'wL'#247#175'xL'#247#164'e4'#255#164'e4'#8#255#255#255#0#164'e4'#252#179'yL~'
+#207#157'v+'#187#131'W'#19#164'e4'#2#255#255#255#0#255#255#255#0#164'e4'#4
+#166'h8'#196#208#172#143#250#246#238#231#255#242#230#219#255#246#238#230#255
+#166'j:'#251#164'e4'#9#255#255#255#0#164'e5'#254#167'j:'#251#199#145'h'#157
+#165'g7'#230#164'e4#'#255#255#255#0#255#255#255#0#255#255#255#0#164'e4`'#164
+'f5'#255#233#215#199#255#235#216#198#255#245#236#227#255#166'j:'#250#164'e4'
+#10#255#255#255#0#166'h8'#243#171'pA'#255#169'l<'#254#167'j:'#245#164'e4u'
+#164'e4'#25#164'e4E'#166'i8'#205#185#136'a'#245#235#219#205#255#245#235#226
+#255#246#238#230#255#246#238#230#255#167'j:'#250#164'e4'#11#255#255#255#0#167
+'i9'#155#192#144'i'#253#197#152'r'#255#168'k<'#255#164'f5'#255#167'j:'#252
+#183#133']'#243#217#187#161#254#241#228#216#255#242#230#219#255#243#232#221
+#255#206#167#136#253#234#216#200#255#167'j:'#249#164'e4'#13#255#255#255#0#164
+'e4)'#166'i9'#245#211#173#140#255#220#189#157#255#221#190#161#255#229#203#180
+#255#233#211#191#255#238#221#204#255#240#226#213#255#231#210#191#255#175'wK'
+#245#165'g6'#192#171'qC'#247#164'f5'#252#164'e4'#14#255#255#255#0#255#255#255
+#0#164'e5P'#166'h8'#246#192#144'h'#250#211#176#143#255#223#194#168#255#222
+#193#168#255#212#177#147#255#185#135'_'#244#165'g7'#240#164'e4X'#255#255#255
+#0#164'f5f'#164'e4'#255#164'e4'#15#255#255#255#0#255#255#255#0#255#255#255#0
+#164'e4'#29#167'i:'#159#167'j:'#222#165'g6'#246#167'i9'#229#167'j:'#188#164
+'e4S'#164'e4'#5#255#255#255#0#255#255#255#0#255#255#255#0#164'e4y'#164'e4'#16
+#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem26'#7'Ca'
+'ption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem51'#6'Action'#7#13'actTreeSearch'
+#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16
+#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'>94'#255'940'#255'3/+'#255',)%'#255'''$!'#255' '#29#27#255#23
+#22#20#26#17#15#14#219#11#10#9#255#7#7#6#255#4#4#3#255#0#0#0#255#0#0#0#255
+#255#255#255#0#255#255#255#0#255#255#255#0'FA;'#255#133'zp'#255#195#184#174
+#255'|rh'#255#127'uk'#255'62-'#255#30#28#25#15'(%"'#212#149#137'}'#255#186
+#174#162#255'|rh'#255#127'uk'#255#1#1#1#255#255#255#255#0#255#255#255#0#255
+#255#255#0'MGA'#255#131'xo'#255#204#195#186#255'xoe'#255'{qg'#255'/+('#249
+'''$!'#1#29#27#24#238#149#137'}'#255#194#184#173#255'xoe'#255'|rh'#255#6#5#5
+#255#255#255#255#0#255#255#255#0#255#255#255#0'SLF'#252#131'xo'#255#204#195
+#186#255'ypf'#255'qh_'#255'73.'#213#255#255#255#0'%" '#213#133'zp'#255#194
+#184#173#255'xoe'#255'{qg'#255#10#9#8#252#255#255#255#0#255#255#255#0#255#255
+#255#0'ZRL'#195#159#146#134#255#204#195#186#255#192#180#170#255#166#152#139
+#255'>94'#168#255#255#255#0',)%'#168#144#132'y'#255#194#184#173#255#192#180
+#170#255#168#155#142#255#17#15#14#195#255#255#255#0#255#255#255#0'ypf'#5'\UN'
+#249'B=8'#255'XQJ'#255'=83'#255'3/+'#255'# '#29#229#23#22#20'0'#30#28#25#181
+#26#24#22#255'%" '#255#25#23#21#255#15#14#13#255#1#1#1#238#0#0#0#2#255#255
+#255#0#159#146#134#5#157#145#133#255#177#163#150#255#127'uk'#255'|rh'#255'wm'
+'d'#255'lc['#255'.*&'#255'VOH'#255#128'vl'#255'|rh'#255'wmd'#255'pg^'#255#0#0
+#0#254#0#0#0#5#255#255#255#0#171#157#144#4#175#161#148#225#186#174#162#255
+#255#255#255#0#255#255#255#0'>94'#255'940'#255'3/+'#255',)%'#255'''$!'#255' '
+#29#27#255#23#22#20#26#17#15#14#219#11#10#9#255#7#7#6#255#4#4#3#255#0#0#0#255
+#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0'FA;'#255#133'zp'#255#195
+#184#174#255'|rh'#255#127'uk'#255'62-'#255#30#28#25#15'(%"'#212#149#137'}'
+#255#186#174#162#255'|rh'#255#127'uk'#255#1#1#1#255#255#255#255#0#255#255#255
+#0#255#255#255#0'MGA'#255#131'xo'#255#204#195#186#255'xoe'#255'{qg'#255'/+('
+#249'''$!'#1#29#27#24#238#149#137'}'#255#194#184#173#255'xoe'#255'|rh'#255#6
+#5#5#255#255#255#255#0#255#255#255#0#255#255#255#0'SLF'#252#131'xo'#255#204
+#195#186#255'ypf'#255'qh_'#255'73.'#213#255#255#255#0'%" '#213#133'zp'#255
+#194#184#173#255'xoe'#255'{qg'#255#10#9#8#252#255#255#255#0#255#255#255#0#255
+#255#255#0'ZRL'#195#159#146#134#255#204#195#186#255#192#180#170#255#166#152
+#139#255'>94'#168#255#255#255#0',)%'#168#144#132'y'#255#194#184#173#255#192
+#180#170#255#168#155#142#255#17#15#14#195#255#255#255#0#255#255#255#0'ypf'#5
+'\UN'#249'B=8'#255'XQJ'#255'=83'#255'3/+'#255'# '#29#229#23#22#20'0'#30#28#25
+#181#26#24#22#255'%" '#255#25#23#21#255#15#14#13#255#1#1#1#238#0#0#0#2#255
+#255#255#0#159#146#134#5#157#145#133#255#177#163#150#255#127'uk'#255'|rh'#255
+'wmd'#255'lc['#255'.*&'#255'VOH'#255#128'vl'#255'|rh'#255'wmd'#255'pg^'#255#0
+#0#0#254#0#0#0#5#255#255#255#0#171#157#144#4#175#161#148#225#186#174#162#255
+#130'wm'#255#130'wm'#255#170#145'{'#255#186#167#148#255#183#164#142#250#176
+#151#129#255#159#141'}'#255#131'm['#255'qcW'#255#149#137'}'#255#4#4#3#224#0#0
+#0#3#255#255#255#0#185#172#160#8#135'}rH'#155#142#130#255#157#145#133#255#134
@ -1083,13 +1089,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#17#2#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#142#131'x'#226#195#184#174#255'e]U'#255#255#255#255#0'|rh'#255#168#155#142
+#255#156#143#131#228#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#156
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#156
+#143#131#226#188#176#164#255#157#145#133#255#255#255#255#0#174#160#147#255
+#157#145#133#255'e]U'#218#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#7'OnClick'#7#20'actTreeSearchExecute'#0#0#9'TMenuItem'
@ -1147,13 +1153,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#24#22')'#255'@?h'#255'***'#255#1#2#6#255#1#3#20#255#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#26#25'*'#255#136'w'#194#255'XS'#128#255'ppp'#255#127#128#127#255'\cd'#255'-'
+'1@'#255#0#0#16#255#0#0#6#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#30#30'4'#255#131'|'#200#255#136#128#204#255'TRx'#255'OQN'#255'gif'#255#141
+#142#141#255#166#166#166#255#150#150#162#255'ZZ'#134#255#14#14'0'#255#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0'""6'#255#135'~'#202#255#133'|'#210#255'~~'#203#255
,'jg'#165#255'41J'#255'99?'#255'ggg'#255#130#130#130#255#159#159#159#255#162
+'jg'#165#255'41J'#255'99?'#255'ggg'#255#130#130#130#255#159#159#159#255#162
+#162#162#255#8#8#8#255#0#0#0#0#0#0#0#0#0#0#0#0'(&F'#255#132#132#206#255#133
+#134#206#255#142#140#207#255#127'v'#200#255'IB'#165#255'40'#154#255'95'#149
+#255',)s'#255'AAj'#255'ZWh'#255'hhj'#255#0#0#0#0#0#0#0#0#0#0#0#0'-*G'#255#135
@ -1211,13 +1217,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#150#245#255'fj'#235#255'oq'#236#255'nr'#236#255'Z\'#229#255'\a'#231#255'_b'
+#233#255'QX'#226#255'mu'#187'0'#255#255#255#0'~'#159#128#10's'#149'u;l'#143
+'o[n'#168'w'#255'LR'#224#255#162#162#244#255'jl'#236#255'ac'#234#255#151#147
+#247#255#151#147#247#255'dh'#233#255'ef'#234#255'\a'#231#255'OW'#226#255'mu'
,#247#255#151#147#247#255'dh'#233#255'ef'#234#255'\a'#231#255'OW'#226#255'mu'
+#187'0'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'TZ'#219#254'||'#242#255#151#147#247#255'dh'#233#255'RX'#227#255'RX'#227#255
+'dh'#233#255#151#147#247#255'||'#242#255'MV'#217#254'mu'#187'&'#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'sx'#206#200'no'#236
+#255'fh'#235#255'_b'#233#255'xx'#240#255'tt'#240#255'_b'#233#255'ik'#235#255
,'oq'#236#255'rw'#204#200#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+'oq'#236#255'rw'#204#200#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#128#136#202#10't|'#193';mt'#189'[ac'#227
+#255'QW'#226#255'QW'#226#255'_b'#227#255'lt'#188'^t{'#193';'#128#136#202#10
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
@ -1275,13 +1281,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223
+#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223
+#223#255#218#219#219#255#210#210#210#255#201#201#200#255#192#192#192#255#183
+#184#183#255#175#174#174#255#166#165#166#255#223#223#223#0#223#223#223#0#223
,#184#183#255#175#174#174#255#166#165#166#255#223#223#223#0#223#223#223#0#223
+#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223
+#223#0#223#223#223#255#218#218#218#255#214#214#214#255#210#210#210#255#206
+#206#206#255#203#203#203#255#202#202#202#255#165#165#165#255#223#223#223#0
+#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223
+#223#223#0#223#223#223#0#223#223#223#255#220#220#220#255#216#216#216#255#213
,#213#213#255#209#209#209#255#206#206#206#255#204#204#204#255#165#165#165#255
+#213#213#255#209#209#209#255#206#206#206#255#204#204#204#255#165#165#165#255
+#175#174#174#255#166#165#166#255#223#223#223#0#223#223#223#0#223#223#223#0
+#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#255#218#218#218#255
+#214#214#214#255#210#210#210#255#206#206#206#255#203#203#203#255#202#202#202
@ -1339,13 +1345,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#241#241#241#255#196#196#196#255#255#255#255#255#255#255#255#255#211#211#211
+#255#196#196#196#255#196#196#196#255#241#241#241#255'\\\l'#21#21#21#0#13#13
+#13#0#13#13#13#0#13#13#13#0#13#13#13#0'###'#0'dddj'#246#246#246#255#192#192
+#192#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#192
,#192#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#192
+#192#192#255#246#246#246#255'dddj'#25#25#25'X'#21#21#21'u'#21#21#21'u'#21#21
+#21'u'#21#21#21'u'#21#21#21'u111'#174#144#144#144#255'ooo'#255#176#176#176
+#255#255#255#255#255#255#255#255#255#255#255#255#255#187#187#187#255#249#249
+#249#255'llli888q'#236#236#236#255#232#232#232#255#232#232#232#255#232#232
+#232#255#232#232#232#255#232#232#232#255#232#232#232#255#236#236#236#255'yyy'
,#255#173#173#173#255#173#173#173#255#173#173#173#255#173#173#173#255#253#253
+#255#173#173#173#255#173#173#173#255#173#173#173#255#173#173#173#255#253#253
+#253#255'ttthIIIn'#234#234#234#255'&&&'#255'&&&'#255'&&&'#255'&&&'#255#234
+#234#234#255'fff'#255#234#234#234#255#176#176#176#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255'zzzgRRRm'#238#238
@ -1403,13 +1409,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#255#223#223#223#0#223#223#223#0#0#0#0#255#230#178#139#255#235#194#162#255
+#234#190#160#255#233#190#160#255#228#178#144#253#223#223#223#0#223#223#223#0
+#231#183#149#254#235#195#166#255#235#197#167#255#236#198#167#255#230#179#140
+#255#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#230#179#140#255
,#255#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#230#179#140#255
+#236#198#167#255#235#197#167#255#235#195#166#255#231#183#149#254#223#223#223
+#0#223#223#223#0#230#180#143#228#233#190#155#255#235#195#164#255#236#199#170
+#255#230#179#140#255#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0
+#230#179#140#255#236#199#170#255#235#195#164#255#233#190#155#255#230#180#143
+#228#223#223#223#0#223#223#223#0#231#177#141':'#231#182#142#147#232#184#147
,#222#234#187#152#253#230#179#140#255#223#223#223#0#223#223#223#0#223#223#223
+#222#234#187#152#253#230#179#140#255#223#223#223#0#223#223#223#0#223#223#223
+#0#223#223#223#0#230#179#140#255#234#187#152#253#232#184#147#222#231#182#142
+#147#231#177#141':'#223#223#223#0#223#223#223#0#204#153'f'#5#238#183#139#13
+#233#180#140'@'#232#179#139#167#232#181#142#253#223#223#223#0#223#223#223#0
@ -1467,13 +1473,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#255#247#248#248#255#247#248#248#255#247#248#248#255#247#248#248#255#247#248
+#248#255#247#248#248#255#133#138#136#255#255#255#255#0#255#255#255#0#255#255
+#255#0#133#138#136#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
,#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#133#138#136#255#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#140#142#141#255#133#138#136#255#133#138#136#255
+#133#138#136#255#133#138#136#255#133#138#136#255#133#138#136#255#133#138#136
+#255#133#138#136#255#133#138#136#255#133#138#136#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#7'OnClick'#7#22'actUpdateObjectExecute'#0
,#0#9'TMenuItem'#10'MenuItem33'#6'Action'#7#9'actDelete'#11'Bitmap.Data'#10':'
+#0#9'TMenuItem'#10'MenuItem33'#6'Action'#7#9'actDelete'#11'Bitmap.Data'#10':'
+#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '
+#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
@ -1531,13 +1537,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#255#0#164'e4'#5#164'e4S'#167'j:'#190#166'i8'#233#164'f5'#250#167'j:'#228#167
+'k;'#170#164'e4$'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#164
+'e4'#255#165'g6'#147#255#255#255#0#164'e4T'#166'g7'#238#181#128'U'#243#206
+#166#132#255#216#182#151#255#219#185#153#255#211#172#138#255#194#148'm'#252
,#166#132#255#216#182#151#255#219#185#153#255#211#172#138#255#194#148'm'#252
+#166'h8'#246#164'f5['#255#255#255#0#255#255#255#0#255#255#255#0#165'g7'#254
+#183#132'['#247#165'g6'#212#177'zN'#244#227#202#180#255#236#218#201#255#231
+#209#188#255#227#201#176#255#222#190#160#255#210#171#136#255#206#165#130#255
+#211#174#142#255#166'h8'#245#164'e4*'#255#255#255#0#255#255#255#0#166'h8'#253
+#241#228#216#255#212#178#149#254#244#233#224#255#243#232#221#255#237#220#204
,#255#210#173#143#254#176'xL'#245#165'f5'#251#166'i9'#255#166'i9'#254#169'm='
+#255#210#173#143#254#176'xL'#245#165'f5'#251#166'i9'#255#166'i9'#254#169'm='
+#255#176'xL'#255#167'j:'#168#255#255#255#0#255#255#255#0#165'g7'#253#246#238
+#230#255#245#236#227#255#245#237#228#255#230#210#193#255#176'yM'#245#166'i8'
+#202#164'e46'#255#255#255#0#164'e4j'#169'k<'#237#182'|O'#255#167'j:'#254#165
@ -1595,13 +1601,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#255'>94'#168#255#255#255#0',)%'#168#144#132'y'#255#194#184#173#255#192#180
+#170#255#168#155#142#255#17#15#14#195#255#255#255#0#255#255#255#0'ypf'#5'\UN'
+#249'B=8'#255'XQJ'#255'=83'#255'3/+'#255'# '#29#229#23#22#20'0'#30#28#25#181
+#26#24#22#255'%" '#255#25#23#21#255#15#14#13#255#1#1#1#238#0#0#0#2#255#255
,#26#24#22#255'%" '#255#25#23#21#255#15#14#13#255#1#1#1#238#0#0#0#2#255#255
+#255#0#159#146#134#5#157#145#133#255#177#163#150#255#127'uk'#255'|rh'#255'wm'
+'d'#255'lc['#255'.*&'#255'VOH'#255#128'vl'#255'|rh'#255'wmd'#255'pg^'#255#0#0
+#0#254#0#0#0#5#255#255#255#0#171#157#144#4#175#161#148#225#186#174#162#255
+#130'wm'#255#130'wm'#255#170#145'{'#255#186#167#148#255#183#164#142#250#176
+#151#129#255#159#141'}'#255#131'm['#255'qcW'#255#149#137'}'#255#4#4#3#224#0#0
,#0#3#255#255#255#0#185#172#160#8#135'}rH'#155#142#130#255#157#145#133#255#134
+#0#3#255#255#255#0#185#172#160#8#135'}rH'#155#142#130#255#157#145#133#255#134
+'{q'#255'VOH'#255'PJD'#255#128'vl'#255'nf]'#255#130'lX'#255#166#145'}'#255
+#148#132't'#255'VOH'#255#12#11#11'z'#7#7#6#1#255#255#255#0#255#255#255#0#255
+#255#255#0'tkb'#255#164#151#138#255#149#137'}'#255#159#146#134#255'>94'#255
@ -1659,13 +1665,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#218#188#255#27#217#148#255#21#148'P'#255#24#210'|'#255#25#217'w'#255#21#148
+'P'#255'v'#235#173#255#255#255#255#0#204#155#151#255#214#163#157#255#220#174
+#170#255#218#173#168#255#183#189#184#255#21#148'P'#255'L'#228#168#255'?'#235
+#168#255'$'#218#157#255#26#213#160#255#20#210#144#255#16#206'l'#255#29#214'z'
,#168#255'$'#218#157#255#26#213#160#255#20#210#144#255#16#206'l'#255#29#214'z'
+#255';'#225#140#255#21#148'P'#255#255#255#255#0#255#255#255#0#185#187#186#255
+#212#172#170#255#213#174#173#255#255#255#255#0#193#203#195#255#21#148'P'#255
+#21#148'P'#255'I'#220#156#255'F'#230#162#255#21#148'P'#255','#221#137#255'5'
+#219#134#255#21#148'P'#255'v'#235#173#255#255#255#255#0#255#255#255#0#255#255
+#255#0#185#187#186#255#185#187#186#255#189#191#190#255#225#227#226#255#255
,#255#255#0#165#184#180#255#21#148'P'#255#21#148'P'#255#21#148'P'#255'R'#232
+#255#255#0#165#184#180#255#21#148'P'#255#21#148'P'#255#21#148'P'#255'R'#232
+#154#255#21#148'P'#255'v'#235#173#255#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#225#227#226#255#185#187#186#255#185#187#186
+#255#185#187#186#255#185#187#186#255#185#187#186#255#215#235#225#255#21#148
@ -1723,13 +1729,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#223#0#231#180#141#254#236#200#172#255#235#195#164#255#234#190#160#255#231
+#183#152#255#228#175#144#255#226#170#139#255#217#145'i'#210#223#223#223#0#223
+#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223
+#223#0#223#223#223#0#231#180#141#254#230#179#140#255#230#179#140#255#229#175
,#223#0#223#223#223#0#231#180#141#254#230#179#140#255#230#179#140#255#229#175
+#136#255#226#168#128#255#222#159'v'#255#218#149'l'#255#215#142'd'#210#223#223
+#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0
+#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223
+#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223#223#0#223#223
+#223#0#7'OnClick'#7#21'actArrayCreateExecute'#0#0#9'TMenuItem'#10'MenuItem45'
,#6'Action'#7#17'actCompoundCreate'#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'
+#6'Action'#7#17'actCompoundCreate'#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'
+#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0
+'d'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
@ -1787,13 +1793,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#176#255#191#159#129#255#184#141'e'#255#209#179#143#255#209#179#143#255#187
+#144'f'#255#188#145'h'#255#183#138'`'#255#177'~R'#255'b'#161'i'#255#192#218
+#197#255#173#208#179#255#171#206#177#255#158#200#166#255'm'#170'v'#255#149'{'
+'~'#255'Za'#200#255'PX'#227#255'OV'#224#255'X_'#200#255#144'x'#132#255#187
,'~'#255'Za'#200#255'PX'#227#255'OV'#224#255'X_'#200#255#144'x'#132#255#187
+#144'f'#255#209#179#143#255#198#162'{'#255#169'xO'#254'`'#160'h'#255#197#222
+#201#255#180#212#185#255#164#201#170#255#129#171#154#255'am'#195#255'PX'#224
+#255'fh'#235#255#147#147#244#255'ac'#234#255'X['#228#255'IR'#220#255'`c'#190
+#255#166#137#127#255#193#154'q'#255#165#133'k'#200']'#159'e'#255#185#214#190
+#255#135#186#143#255'q'#172'x'#255'SY'#220#255'fj'#235#255#152#150#244#255
,#145#145#243#255#137#138#240#255'[_'#231#255'_b'#233#255']a'#232#255'QX'#228
+#145#145#243#255#137#138#240#255'[_'#231#255'_b'#233#255']a'#232#255'QX'#228
+#255'IT'#216#254#150'~vC'#166#140'w'#10'd'#160'k'#254#134#186#143#255#153#198
+#162#255't'#173'|'#255'OW'#226#255#180#177#249#255#151#150#244#255#147#147
+#244#255#140#141#240#255'\`'#232#255'\a'#231#255']a'#232#255'_b'#233#255'OW'
@ -1851,13 +1857,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#255'RRR'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#234#234#234#255#235#235
+#235#255#237#237#237#255#238#238#238#255#227#227#227#255#195#195#195#255#241
+#241#241#255#242#242#242#255#243#243#243#255#244#244#244#255'QQQ'#255#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#232#232#232#255#233#233#233#255#234#234#234
,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#232#232#232#255#233#233#233#255#234#234#234
+#255#235#235#235#255#236#236#236#255#238#238#238#255#239#239#239#255#240#240
+#240#255#241#241#241#255#242#242#242#255'QQQ'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#153#153#153#255#154#154#154#255#155#155#155#255#155#155#155#255
+#156#156#156#255#157#157#157#255#158#158#158#255#159#159#159#255#159#159#159
+#255#160#160#160#255'555'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'
+#10'MenuItem43'#6'Action'#7#13'actIntfCreate'#11'Bitmap.Data'#10':'#4#0#0'6'
+#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0
@ -1915,13 +1921,13 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#255#203#203#203#255#234#234#234#255'fff'#255#234#234#234#255'IIIn'#11#11#11
+#0#4#4#4#0#0#0#0#0#0#0#0#0'>>>'#0'RRR'#0'RRRm'#238#238#238#255#200#200#200
+#255#255#255#255#255#255#255#255#255#200#200#200#255#241#241#241#255#237#237
+#237#255#238#238#238#255'RRRm'#21#21#21#0#13#13#13#0#13#13#13#0#13#13#13#0' '
,#237#255#238#238#238#255'RRRm'#21#21#21#0#13#13#13#0#13#13#13#0#13#13#13#0' '
+' '#0'\\\'#0'\\\l'#241#241#241#255#196#196#196#255#255#255#255#255#255#255
+#255#255#211#211#211#255#196#196#196#255#196#196#196#255#241#241#241#255'\\\'
+'l'#21#21#21#0#13#13#13#0#13#13#13#0#13#13#13#0#13#13#13#0'###'#0'dddj'#246
+#246#246#255#192#192#192#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#192#192#192#255#246#246#246#255'dddj'#25#25#25'X'#21#21#21
,'u'#21#21#21'u'#21#21#21'u'#21#21#21'u'#21#21#21'u111'#174#144#144#144#255'o'
+'u'#21#21#21'u'#21#21#21'u'#21#21#21'u'#21#21#21'u111'#174#144#144#144#255'o'
+'oo'#255#176#176#176#255#255#255#255#255#255#255#255#255#255#255#255#255#187
+#187#187#255#249#249#249#255'llli888q'#236#236#236#255#232#232#232#255#232
+#232#232#255#232#232#232#255#232#232#232#255#232#232#232#255#232#232#232#255
@ -1958,5 +1964,9 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ri.FrameEdges'#7#9'sfeAround'#21'SpaceAttri.FrameEdges'#7#9'sfeAround'#22'S'
+'ymbolAttri.FrameEdges'#7#9'sfeAround'#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'#6'OnFind'#7#6'FDFind'#4'left'#3'@'#2#3'top'#3#143#0#0#0#0
+'Search'#6'OnFind'#7#6'FDFind'#4'left'#3'@'#2#3'top'#3#143#0#0#0#11'TOpenDia'
+'log'#9'odOpenXSD'#6'Filter'#6#25'XSD files ( *.xsd )|*.xsd'#11'FilterIndex'
+#2#0#10'InitialDir'#6#2'.\'#7'Options'#11#15'ofPathMustExist'#15'ofFileMustE'
+'xist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#160#1#3'top'#3#164#0#0
+#0#0
]);

View File

@ -42,6 +42,7 @@ type
actArrayCreate : TAction;
actEditSearch : TAction;
actClone : TAction;
actAddXsdImport : TAction;
actSaveXSD : TAction;
actTreeSearch : TAction;
actRecordCreate : TAction;
@ -103,6 +104,7 @@ type
MenuItem53 : TMenuItem;
MenuItem54 : TMenuItem;
MenuItem55 : TMenuItem;
MenuItem56 : TMenuItem;
MenuItem6: TMenuItem;
MenuItem7 : TMenuItem;
MenuItem8: TMenuItem;
@ -113,6 +115,7 @@ type
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
OD: TOpenDialog;
odOpenXSD : TOpenDialog;
PCInfos : TPageControl;
PC: TPageControl;
Panel1: TPanel;
@ -141,6 +144,8 @@ type
ToolButton15: TToolButton;
ToolButton16: TToolButton;
ToolButton17: TToolButton;
ToolButton18: TToolButton;
ToolButton19: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
@ -161,6 +166,8 @@ type
tsProxy: TTabSheet;
trvSchema: TTreeView;
procedure actAboutExecute(Sender: TObject);
procedure actAddXsdImportExecute(Sender : TObject);
procedure actAddXsdImportUpdate(Sender : TObject);
procedure actArrayCreateExecute(Sender : TObject);
procedure actCloneExecute(Sender : TObject);
procedure actCloneUpdate(Sender : TObject);
@ -207,6 +214,7 @@ type
FFoundNode : TTreeNode;
FDependencyList : TObjectList;
private
procedure Handle_OnAppException(Sender : TObject; E : Exception);
function FindCurrentEditor() : TSynEdit;
function Search(const AText : string) : Boolean;
function SearchInTree(const AText : string) : Boolean;
@ -222,6 +230,7 @@ type
procedure ShowDocumentation();
procedure ShowSourceXSD();
procedure ShowDependencies();
procedure AddXsdImport(const AFileName : string);
procedure OpenFile(const AFileName : string; const AContent : TStream = nil);
procedure SaveToFile(const AFileName : string);
function PromptAndSave() : Boolean;
@ -370,8 +379,9 @@ end;
function ParseXsdFile(
const AFileName : string;
AContent : TStream;
const ANotifier : TOnParserMessage
):TwstPasTreeContainer;overload;
const ANotifier : TOnParserMessage;
ASymbols : TwstPasTreeContainer
) : TwstPasTreeContainer;overload;
var
locDoc : TXMLDocument;
prsr : IXsdPaser;
@ -387,7 +397,10 @@ begin
prsr := nil;
locDoc := ReadXMLFile(AContent);
try
Result := TwstPasTreeContainer.Create();
if (ASymbols = nil) then
Result := TwstPasTreeContainer.Create()
else
Result := ASymbols;
try
prsr := TXsdParser.Create(locDoc,Result,'',ANotifier);
locContext := prsr as IParserContext;
@ -397,7 +410,8 @@ begin
end;
prsr.ParseTypes();
except
FreeAndNil(Result);
if (ASymbols = nil) then
FreeAndNil(Result);
raise;
end;
finally
@ -405,6 +419,15 @@ begin
end;
end;
function ParseXsdFile(
const AFileName : string;
AContent : TStream;
const ANotifier : TOnParserMessage
):TwstPasTreeContainer;overload;
begin
Result := ParseXsdFile(AFileName,AContent,ANotifier,nil);
end;
function ParseXsdFile(
const AFileName : string;
const ANotifier : TOnParserMessage
@ -507,14 +530,21 @@ begin
end;
end;
procedure GenerateWSDL_ToStream(ASymbol : TwstPasTreeContainer; ADest : TStream);
procedure GenerateWSDL_ToStream(
ASymbol : TwstPasTreeContainer;
ADest : TStream;
const ADestPath : string
);
var
g : IGenerator;
doc : TXMLDocument;
locLocator : IDocumentLocator;
begin
doc := TXMLDocument.Create();
try
g := TWsdlGenerator.Create(doc);
locLocator := TFileDocumentLocator.Create(IncludeTrailingPathDelimiter(ADestPath));
g.SetDocumentLocator(locLocator);
g.Execute(ASymbol,ASymbol.CurrentModule.Name);
WriteXML(doc,ADest);
finally
@ -522,14 +552,21 @@ begin
end;
end;
procedure GenerateXSD_ToStream(ASymbol : TwstPasTreeContainer; ADest : TStream);
procedure GenerateXSD_ToStream(
ASymbol : TwstPasTreeContainer;
ADest : TStream;
const ADestPath : string
);
var
g : IGenerator;
doc : TXMLDocument;
locLocator : IDocumentLocator;
begin
doc := TXMLDocument.Create();
try
g := TXsdGenerator.Create(doc);
locLocator := TFileDocumentLocator.Create(IncludeLeadingPathDelimiter(ADestPath));
g.SetDocumentLocator(locLocator);
g.Execute(ASymbol,ASymbol.CurrentModule.Name);
WriteXML(doc,ADest);
finally
@ -773,6 +810,16 @@ begin
ShowDependencies();
end;
procedure TfWstTypeLibraryEdit.Handle_OnAppException(
Sender: TObject; E: Exception
);
begin
if (E <> nil) and E.InheritsFrom(EWstEditException) then
MessageDlg(Self.Caption,E.Message,Dialogs.mtError,[mbOK],0)
else
Application.ShowException(E);
end;
function TfWstTypeLibraryEdit.FindCurrentEditor() : TSynEdit;
var
edt : TSynEdit;
@ -875,6 +922,23 @@ begin
end;
end;
procedure TfWstTypeLibraryEdit.actAddXsdImportExecute(Sender : TObject);
begin
{$IFNDEF WST_IDE}
odOpenXSD.InitialDir := DM.Options.ReadString(ClassName(),sLAST_PATH,odOpenXSD.InitialDir);
{$ENDIF WST_IDE}
odOpenXSD.Title := 'Import a schema file ...';
if not odOpenXSD.Execute() then
exit;
AddXsdImport(odOpenXSD.FileName);
end;
procedure TfWstTypeLibraryEdit.actAddXsdImportUpdate(Sender : TObject);
begin
TAction(Sender).Enabled := (FSymbolTable <> nil) and
(FSymbolTable.CurrentModule <> nil);
end;
procedure TfWstTypeLibraryEdit.actArrayCreateExecute(Sender : TObject);
var
e : TPasArrayType;
@ -1148,7 +1212,7 @@ var
begin
mstrm := TMemoryStream.Create();
try
GenerateWSDL_ToStream(FSymbolTable,mstrm);
GenerateWSDL_ToStream(FSymbolTable,mstrm,ExtractFilePath(FCurrentFileName));
mstrm.Position := 0;
srcWSDL.Lines.LoadFromStream(mstrm);
finally
@ -1214,6 +1278,36 @@ begin
DrawDependencies(tvDependency,FDependencyList);
end;
procedure TfWstTypeLibraryEdit.AddXsdImport(const AFileName: string);
var
i : Integer;
locModule, locNewModule : TPasModule;
locStream : TMemoryStream;
begin
locStream := TMemoryStream.Create();
try
locStream.LoadFromFile(odOpenXSD.FileName);
locStream.Position := 0;
locModule := FSymbolTable.CurrentModule;
try
ParseXsdFile(AFileName,locStream,@ShowStatusMessage,FSymbolTable);
locNewModule := FSymbolTable.CurrentModule;
finally
FSymbolTable.SetCurrentModule(locModule);
end;
finally
locStream.Free();
end;
FSymbolTable.Properties.SetValue(locNewModule,sFILE_NAME,AFileName);
i := FSymbolTable.CurrentModule.InterfaceSection.UsesList.IndexOf(locNewModule);
if (i = -1) then begin
FSymbolTable.CurrentModule.InterfaceSection.UsesList.Add(locNewModule);
locNewModule.AddRef();
end;
RenderSymbols();
end;
procedure TfWstTypeLibraryEdit.OpenFile (const AFileName : string; const AContent : TStream);
var
tmpTable : TwstPasTreeContainer;
@ -1264,9 +1358,9 @@ begin
mstrm := TMemoryStream.Create();
try
if SameText('.xsd',ExtractFileExt(AFileName)) then
GenerateXSD_ToStream(FSymbolTable,mstrm)
GenerateXSD_ToStream(FSymbolTable,mstrm,ExtractFilePath(FCurrentFileName))
else
GenerateWSDL_ToStream(FSymbolTable,mstrm);
GenerateWSDL_ToStream(FSymbolTable,mstrm,ExtractFilePath(FCurrentFileName));
mstrm.SaveToFile(AFileName);
finally
FreeAndNil(mstrm);
@ -1311,6 +1405,7 @@ begin
inherited Create(AOwner);
FSymbolTable := CreateSymbolTable(ExtractFileName(DEF_FILE_NAME));
trvSchema.Images := DM.IM;
Application.OnException := @Handle_OnAppException;
end;
destructor TfWstTypeLibraryEdit.Destroy();

View File

@ -23,10 +23,24 @@ uses
{$IFDEF FPC}
, DOM, wst_fpc_xml
{$ENDIF FPC}
, xsd_parser;
;
type
IDocumentLocator = interface
['{F063700B-C0ED-4C54-9A54-C97030E80BD4}']
function Find(
const ADocLocation : string;
out ADoc : TXMLDocument
) : Boolean;
function FindPath(ADocLocation : string) : string;
function GetBasePath() : string;
procedure SetBasePath(AValue : string);
function Clone() : IDocumentLocator;
function MakeRelavive(const AFileName : string) : string;
end;
{ TFileDocumentLocator }
TFileDocumentLocator = class(TInterfacedObject,IDocumentLocator)
@ -45,6 +59,7 @@ type
function GetBasePath() : string;
procedure SetBasePath(AValue : string);
function Clone() : IDocumentLocator;
function MakeRelavive(const AFileName : string) : string;
public
constructor Create(const ABasePath : string);virtual;
end;
@ -106,6 +121,11 @@ begin
Result := TFileDocumentLocatorClass(Self.ClassType).Create(FBasePath) as IDocumentLocator;
end;
function TFileDocumentLocator.MakeRelavive(const AFileName: string): string;
begin
Result := ExtractRelativePath(GetBasePath(),AFileName);
end;
constructor TFileDocumentLocator.Create(const ABasePath: string);
begin
SetBasePath(IncludeTrailingPathDelimiter(ABasePath));

View File

@ -18,7 +18,7 @@ interface
uses
Classes, SysUtils, TypInfo,
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
pastree, pascal_parser_intf, xsd_generator;
pastree, pascal_parser_intf, xsd_generator, locators;
type
@ -42,6 +42,7 @@ type
FDocument : TDOMDocument;
FTypesNode : TDOMElement;
FDefinitionsNode : TDOMElement;
FDocumentLocator : IDocumentLocator;
private
procedure GenerateTypes(ASymTable : TwstPasTreeContainer; AModule : TPasModule);
procedure GenerateServiceMessages(
@ -70,6 +71,8 @@ type
);
protected
procedure Prepare(ASymTable : TwstPasTreeContainer; AModule : TPasModule);
function GetDocumentLocator() : IDocumentLocator;
procedure SetDocumentLocator(ALocator : IDocumentLocator);
procedure Execute(
ASymTable : TwstPasTreeContainer;
AModuleName : string
@ -154,6 +157,7 @@ var
g : IGenerator;
nsList : TStringList;
s : string;
locLocator : IDocumentLocator;
begin
mdlLs := ASymTable.Package.Modules;
if ( mdlLs.Count > 0 ) then begin
@ -167,6 +171,9 @@ begin
end;
end;
g := TWsdlTypechemaGenerator.Create(Document) as IGenerator;
locLocator := GetDocumentLocator();
if (locLocator <> nil) then
g.SetDocumentLocator(locLocator);
for i := 0 to Pred(mdlLs.Count) do begin
mdl := TPasModule(mdlLs[i]);
if (mdl <> AModule) then begin
@ -469,6 +476,16 @@ begin
end;
function TWsdlGenerator.GetDocumentLocator : IDocumentLocator;
begin
Result := FDocumentLocator;
end;
procedure TWsdlGenerator.SetDocumentLocator(ALocator : IDocumentLocator);
begin
FDocumentLocator := ALocator;
end;
procedure TWsdlGenerator.Execute(ASymTable : TwstPasTreeContainer; AModuleName : string);
var
locMainModule : TPasModule;

View File

@ -18,7 +18,7 @@ interface
uses
Classes, SysUtils, TypInfo,
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM, wst_fpc_xml{$ENDIF},
pastree, pascal_parser_intf;
pastree, pascal_parser_intf, locators;
type
@ -35,6 +35,8 @@ type
ASymTable : TwstPasTreeContainer;
AModuleName : string
);
function GetDocumentLocator() : IDocumentLocator;
procedure SetDocumentLocator(ALocator : IDocumentLocator);
end;
IXsdGenerator = interface(IGenerator)
@ -88,6 +90,7 @@ type
FDocument : TDOMDocument;
FOptions: TGeneratorOptions;
FShortNames : TStrings;
FDocumentLocator : IDocumentLocator;
protected
procedure GenerateImports(
ASymTable : TwstPasTreeContainer;
@ -97,6 +100,8 @@ type
function GetSchemaNode(ADocument : TDOMDocument) : TDOMNode;virtual;abstract;
procedure SetPreferedShortNames(const ALongName, AShortName : string);
function GetPreferedShortNames() : TStrings;
function GetDocumentLocator() : IDocumentLocator;
procedure SetDocumentLocator(ALocator : IDocumentLocator);
procedure Execute(
ASymTable : TwstPasTreeContainer;
AModuleName : string
@ -1414,10 +1419,12 @@ var
locNS, locFileName, s : string;
locSchemaNode, resNode : TDOMElement;
locCurrentNS : string;
locLocator : IDocumentLocator;
begin
locUsesList := AModule.InterfaceSection.UsesList;
if (locUsesList.Count > 0) then begin
locCurrentNS := ASymTable.GetExternalName(AModule);
locLocator := GetDocumentLocator();
for i := 0 to Pred(locUsesList.Count) do begin
locModule := TPasElement(locUsesList[i]);
locNS := ASymTable.GetExternalName(locModule);
@ -1428,6 +1435,8 @@ begin
locFileName := ASymTable.Properties.GetValue(locModule,sFILE_NAME);
if IsStrEmpty(locFileName) then
Continue;
if (locLocator <> nil) then
locFileName := locLocator.MakeRelavive(locFileName);
locSchemaNode := GetSchemaNode(FDocument) as TDOMElement;
s := Format('%s:%s',[s_xs_short,s_import]);
resNode := CreateElement(s,locSchemaNode,FDocument);
@ -1447,6 +1456,16 @@ begin
Result := FShortNames;
end;
function TCustomXsdGenerator.GetDocumentLocator: IDocumentLocator;
begin
Result := FDocumentLocator;
end;
procedure TCustomXsdGenerator.SetDocumentLocator(ALocator: IDocumentLocator);
begin
FDocumentLocator := ALocator;
end;
destructor TCustomXsdGenerator.Destroy();
begin
FreeAndNil(FShortNames);

View File

@ -18,7 +18,7 @@ uses
Classes, SysUtils,
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
cursor_intf, rtti_filters,
pastree, pascal_parser_intf, logger_intf;
pastree, pascal_parser_intf, logger_intf, locators;
type
@ -42,18 +42,7 @@ type
TOnParserMessage = procedure (const AMsgType : TMessageType; const AMsg : string) of object;
IDocumentLocator = interface
['{F063700B-C0ED-4C54-9A54-C97030E80BD4}']
function Find(
const ADocLocation : string;
out ADoc : TXMLDocument
) : Boolean;
function FindPath(ADocLocation : string) : string;
function GetBasePath() : string;
procedure SetBasePath(AValue : string);
function Clone() : IDocumentLocator;
end;
IDocumentLocator = locators.IDocumentLocator;
TParserOption = (
poEnumAlwaysPrefix, // Always prefix enum item with the enum name