Record definition partialy supported in Type Library Editor

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@245 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2007-08-21 22:14:13 +00:00
parent 1069954eba
commit a670b3cc11
20 changed files with 1418 additions and 668 deletions

View File

@ -12,7 +12,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/> <ActiveEditorIndexAtStart Value="10"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -36,8 +36,8 @@
<Filename Value="record_server.pas"/> <Filename Value="record_server.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="record_server"/> <UnitName Value="record_server"/>
<CursorPos X="61" Y="27"/> <CursorPos X="34" Y="16"/>
<TopLine Value="7"/> <TopLine Value="4"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="37"/> <UsageCount Value="37"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -98,8 +98,8 @@
<Unit7> <Unit7>
<Filename Value="..\..\..\base_service_intf.pas"/> <Filename Value="..\..\..\base_service_intf.pas"/>
<UnitName Value="base_service_intf"/> <UnitName Value="base_service_intf"/>
<CursorPos X="1" Y="1"/> <CursorPos X="38" Y="1227"/>
<TopLine Value="1"/> <TopLine Value="1216"/>
<EditorIndex Value="10"/> <EditorIndex Value="10"/>
<UsageCount Value="19"/> <UsageCount Value="19"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
@ -119,7 +119,7 @@
<Unit9> <Unit9>
<Filename Value="..\..\..\server_service_soap.pas"/> <Filename Value="..\..\..\server_service_soap.pas"/>
<UnitName Value="server_service_soap"/> <UnitName Value="server_service_soap"/>
<CursorPos X="15" Y="22"/> <CursorPos X="17" Y="21"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="19"/> <UsageCount Value="19"/>
@ -188,7 +188,16 @@
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit17> </Unit17>
</Units> </Units>
<JumpHistory Count="0" HistoryIndex="-1"/> <JumpHistory Count="2" HistoryIndex="1">
<Position1>
<Filename Value="..\..\..\server_service_soap.pas"/>
<Caret Line="21" Column="17" TopLine="1"/>
</Position1>
<Position2>
<Filename Value="..\..\..\base_service_intf.pas"/>
<Caret Line="71" Column="44" TopLine="55"/>
</Position2>
</JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>

View File

@ -41,7 +41,8 @@ type
TObjectUpdaterClass = class of TObjectUpdater; TObjectUpdaterClass = class of TObjectUpdater;
function CreateEnum(AContainer : TwstPasTreeContainer) : TPasEnumType; function CreateEnum(AContainer : TwstPasTreeContainer) : TPasEnumType;
function CreateCompoundObject(ASymbolTable : TwstPasTreeContainer) : TPasClassType; function CreateClassObject(ASymbolTable : TwstPasTreeContainer) : TPasClassType;
function CreateRecordObject(ASymbolTable : TwstPasTreeContainer) : TPasRecordType;
function CreateArray(ASymbolTable : TwstPasTreeContainer) : TPasArrayType; function CreateArray(ASymbolTable : TwstPasTreeContainer) : TPasArrayType;
function CreateInterface(ASymbolTable : TwstPasTreeContainer) : TPasClassType; function CreateInterface(ASymbolTable : TwstPasTreeContainer) : TPasClassType;
function CreateMethod( function CreateMethod(
@ -75,7 +76,8 @@ type
implementation implementation
uses Contnrs, Forms, ufEnumedit, ufclassedit, uinterfaceedit, uprocedit, uses Contnrs, Forms, ufEnumedit, ufclassedit, uinterfaceedit, uprocedit,
uargedit, umoduleedit, ubindingedit, ufarrayedit, uftypealiasedit; uargedit, umoduleedit, ubindingedit, ufarrayedit, uftypealiasedit,
ufrecordedit;
type type
@ -164,6 +166,17 @@ type
):Boolean;override; ):Boolean;override;
end; end;
{ TRecordUpdater }
TRecordUpdater = class(TObjectUpdater)
public
class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
):Boolean;override;
end;
{ TTypeAliasUpdater } { TTypeAliasUpdater }
TTypeAliasUpdater = class(TObjectUpdater) TTypeAliasUpdater = class(TObjectUpdater)
@ -241,6 +254,30 @@ type
):Boolean;override; ):Boolean;override;
end; end;
{ TRecordUpdater }
class function TRecordUpdater.CanHandle(AObject : TObject) : Boolean;
begin
Result := ( inherited CanHandle(AObject) ) and AObject.InheritsFrom(TPasRecordType) ;
end;
class function TRecordUpdater.UpdateObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
) : Boolean;
var
f : TfRecordEdit;
e : TPasRecordType;
begin
e := AObject as TPasRecordType;
f := TfRecordEdit.Create(Application);
try
Result := f.UpdateObject(e,etUpdate,ASymbolTable);
finally
f.Release();
end;
end;
{ TTypeAliasUpdater } { TTypeAliasUpdater }
class function TTypeAliasUpdater.CanHandle(AObject : TObject) : Boolean; class function TTypeAliasUpdater.CanHandle(AObject : TObject) : Boolean;
@ -517,7 +554,7 @@ begin
end; end;
end; end;
function CreateCompoundObject(ASymbolTable : TwstPasTreeContainer) : TPasClassType; function CreateClassObject(ASymbolTable : TwstPasTreeContainer) : TPasClassType;
var var
f : TfClassEdit; f : TfClassEdit;
begin begin
@ -530,6 +567,19 @@ begin
end; end;
end; end;
function CreateRecordObject(ASymbolTable : TwstPasTreeContainer) : TPasRecordType;
var
f : TfRecordEdit;
begin
Result := nil;
f := TfRecordEdit.Create(Application);
try
f.UpdateObject(Result,etCreate,ASymbolTable);
finally
f.Release();
end;
end;
function CreateArray(ASymbolTable : TwstPasTreeContainer) : TPasArrayType; function CreateArray(ASymbolTable : TwstPasTreeContainer) : TPasArrayType;
var var
f : TfArrayEdit; f : TfArrayEdit;
@ -716,6 +766,7 @@ initialization
UpdaterRegistryInst.RegisterHandler(TBindingUpdater); UpdaterRegistryInst.RegisterHandler(TBindingUpdater);
UpdaterRegistryInst.RegisterHandler(TArrayUpdater); UpdaterRegistryInst.RegisterHandler(TArrayUpdater);
UpdaterRegistryInst.RegisterHandler(TTypeAliasUpdater); UpdaterRegistryInst.RegisterHandler(TTypeAliasUpdater);
UpdaterRegistryInst.RegisterHandler(TRecordUpdater);
finalization finalization
FreeAndNil(UpdaterRegistryInst); FreeAndNil(UpdaterRegistryInst);

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="2"/> <ActiveEditorIndexAtStart Value="4"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -32,15 +32,13 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item2> </Item2>
</RequiredPackages> </RequiredPackages>
<Units Count="83"> <Units Count="84">
<Unit0> <Unit0>
<Filename Value="typ_lib_edtr.lpr"/> <Filename Value="typ_lib_edtr.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<CursorPos X="1" Y="21"/> <CursorPos X="30" Y="20"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="2"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="uwsttypelibraryedit.pas"/> <Filename Value="uwsttypelibraryedit.pas"/>
@ -49,8 +47,8 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="uwsttypelibraryedit.lrs"/> <ResourceFilename Value="uwsttypelibraryedit.lrs"/>
<UnitName Value="uwsttypelibraryedit"/> <UnitName Value="uwsttypelibraryedit"/>
<CursorPos X="1" Y="234"/> <CursorPos X="49" Y="172"/>
<TopLine Value="201"/> <TopLine Value="159"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -60,17 +58,17 @@
<UnitName Value="parserdefs"/> <UnitName Value="parserdefs"/>
<CursorPos X="1" Y="35"/> <CursorPos X="1" Y="35"/>
<TopLine Value="22"/> <TopLine Value="22"/>
<UsageCount Value="40"/> <UsageCount Value="38"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/> <Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<UnitName Value="wsdl2pas_imp"/> <UnitName Value="wsdl2pas_imp"/>
<CursorPos X="39" Y="1634"/> <CursorPos X="45" Y="2206"/>
<TopLine Value="1628"/> <TopLine Value="2185"/>
<EditorIndex Value="9"/> <EditorIndex Value="11"/>
<UsageCount Value="99"/> <UsageCount Value="100"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="65" Y="750" ID="2"/> <Item0 X="65" Y="790" ID="2"/>
</Bookmarks> </Bookmarks>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit3> </Unit3>
@ -78,9 +76,9 @@
<Filename Value="wsdl_generator.pas"/> <Filename Value="wsdl_generator.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="wsdl_generator"/> <UnitName Value="wsdl_generator"/>
<CursorPos X="26" Y="13"/> <CursorPos X="56" Y="1023"/>
<TopLine Value="1"/> <TopLine Value="1006"/>
<EditorIndex Value="7"/> <EditorIndex Value="5"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
@ -110,9 +108,11 @@
<Filename Value="view_helper.pas"/> <Filename Value="view_helper.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="view_helper"/> <UnitName Value="view_helper"/>
<CursorPos X="3" Y="207"/> <CursorPos X="16" Y="325"/>
<TopLine Value="193"/> <TopLine Value="325"/>
<EditorIndex Value="1"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
<Filename Value="..\ws_helper\source_utils.pas"/> <Filename Value="..\ws_helper\source_utils.pas"/>
@ -120,7 +120,7 @@
<UnitName Value="source_utils"/> <UnitName Value="source_utils"/>
<CursorPos X="5" Y="315"/> <CursorPos X="5" Y="315"/>
<TopLine Value="288"/> <TopLine Value="288"/>
<EditorIndex Value="8"/> <EditorIndex Value="10"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit8> </Unit8>
@ -128,9 +128,9 @@
<Filename Value="edit_helper.pas"/> <Filename Value="edit_helper.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="edit_helper"/> <UnitName Value="edit_helper"/>
<CursorPos X="16" Y="105"/> <CursorPos X="11" Y="717"/>
<TopLine Value="25"/> <TopLine Value="712"/>
<EditorIndex Value="1"/> <EditorIndex Value="2"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit9> </Unit9>
@ -141,9 +141,11 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="ufclassedit.lrs"/> <ResourceFilename Value="ufclassedit.lrs"/>
<UnitName Value="ufclassedit"/> <UnitName Value="ufclassedit"/>
<CursorPos X="1" Y="336"/> <CursorPos X="1" Y="118"/>
<TopLine Value="299"/> <TopLine Value="131"/>
<EditorIndex Value="6"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit10> </Unit10>
<Unit11> <Unit11>
<Filename Value="ufpropedit.pas"/> <Filename Value="ufpropedit.pas"/>
@ -151,100 +153,102 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="ufpropedit.lrs"/> <ResourceFilename Value="ufpropedit.lrs"/>
<UnitName Value="ufpropedit"/> <UnitName Value="ufpropedit"/>
<CursorPos X="1" Y="129"/> <CursorPos X="58" Y="147"/>
<TopLine Value="118"/> <TopLine Value="129"/>
<EditorIndex Value="8"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
<Filename Value="..\..\..\..\lazarus23_213\lcl\comctrls.pp"/> <Filename Value="..\..\..\..\lazarus23_213\lcl\comctrls.pp"/>
<UnitName Value="ComCtrls"/> <UnitName Value="ComCtrls"/>
<CursorPos X="15" Y="1781"/> <CursorPos X="15" Y="1781"/>
<TopLine Value="1768"/> <TopLine Value="1768"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
<Filename Value="..\ws_helper\parserutils.pas"/> <Filename Value="..\ws_helper\parserutils.pas"/>
<UnitName Value="parserutils"/> <UnitName Value="parserutils"/>
<CursorPos X="17" Y="20"/> <CursorPos X="49" Y="27"/>
<TopLine Value="19"/> <TopLine Value="18"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<UsageCount Value="86"/> <UsageCount Value="94"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\i386\i386.inc"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\i386\i386.inc"/>
<CursorPos X="2" Y="1284"/> <CursorPos X="2" Y="1284"/>
<TopLine Value="1263"/> <TopLine Value="1263"/>
<UsageCount Value="6"/> <UsageCount Value="4"/>
</Unit14> </Unit14>
<Unit15> <Unit15>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\except.inc"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\except.inc"/>
<CursorPos X="1" Y="223"/> <CursorPos X="1" Y="223"/>
<TopLine Value="209"/> <TopLine Value="209"/>
<UsageCount Value="6"/> <UsageCount Value="4"/>
</Unit15> </Unit15>
<Unit16> <Unit16>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\objpas.inc"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\objpas.inc"/>
<CursorPos X="1" Y="152"/> <CursorPos X="1" Y="152"/>
<TopLine Value="138"/> <TopLine Value="138"/>
<UsageCount Value="8"/> <UsageCount Value="6"/>
</Unit16> </Unit16>
<Unit17> <Unit17>
<Filename Value="ufclassedit.lrs"/> <Filename Value="ufclassedit.lrs"/>
<CursorPos X="39" Y="2"/> <CursorPos X="39" Y="2"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit17> </Unit17>
<Unit18> <Unit18>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\wstrings.inc"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\wstrings.inc"/>
<CursorPos X="1" Y="317"/> <CursorPos X="1" Y="317"/>
<TopLine Value="303"/> <TopLine Value="303"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit18> </Unit18>
<Unit19> <Unit19>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\fcl-xml\src\dom.pp"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\fcl-xml\src\dom.pp"/>
<UnitName Value="DOM"/> <UnitName Value="DOM"/>
<CursorPos X="3" Y="2064"/> <CursorPos X="3" Y="2064"/>
<TopLine Value="2041"/> <TopLine Value="2041"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit19> </Unit19>
<Unit20> <Unit20>
<Filename Value="..\..\..\..\lazarus23_213\lcl\stdctrls.pp"/> <Filename Value="..\..\..\..\lazarus23_213\lcl\stdctrls.pp"/>
<UnitName Value="StdCtrls"/> <UnitName Value="StdCtrls"/>
<CursorPos X="24" Y="362"/> <CursorPos X="24" Y="362"/>
<TopLine Value="348"/> <TopLine Value="348"/>
<UsageCount Value="8"/> <UsageCount Value="6"/>
</Unit20> </Unit20>
<Unit21> <Unit21>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\classesh.inc"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="12" Y="64"/> <CursorPos X="12" Y="64"/>
<TopLine Value="49"/> <TopLine Value="49"/>
<UsageCount Value="8"/> <UsageCount Value="6"/>
</Unit21> </Unit21>
<Unit22> <Unit22>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\stringl.inc"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\stringl.inc"/>
<CursorPos X="15" Y="1071"/> <CursorPos X="15" Y="1071"/>
<TopLine Value="1056"/> <TopLine Value="1056"/>
<UsageCount Value="8"/> <UsageCount Value="6"/>
</Unit22> </Unit22>
<Unit23> <Unit23>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\types.pp"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\types.pp"/>
<UnitName Value="types"/> <UnitName Value="types"/>
<CursorPos X="6" Y="15"/> <CursorPos X="6" Y="15"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="8"/> <UsageCount Value="6"/>
</Unit23> </Unit23>
<Unit24> <Unit24>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysstrh.inc"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysstrh.inc"/>
<CursorPos X="10" Y="104"/> <CursorPos X="10" Y="104"/>
<TopLine Value="90"/> <TopLine Value="90"/>
<UsageCount Value="8"/> <UsageCount Value="6"/>
</Unit24> </Unit24>
<Unit25> <Unit25>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysstr.inc"/> <Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysstr.inc"/>
<CursorPos X="1" Y="689"/> <CursorPos X="1" Y="689"/>
<TopLine Value="686"/> <TopLine Value="686"/>
<UsageCount Value="8"/> <UsageCount Value="6"/>
</Unit25> </Unit25>
<Unit26> <Unit26>
<Filename Value="uinterfaceedit.pas"/> <Filename Value="uinterfaceedit.pas"/>
@ -254,13 +258,13 @@
<UnitName Value="uinterfaceedit"/> <UnitName Value="uinterfaceedit"/>
<CursorPos X="86" Y="277"/> <CursorPos X="86" Y="277"/>
<TopLine Value="266"/> <TopLine Value="266"/>
<UsageCount Value="192"/> <UsageCount Value="200"/>
</Unit26> </Unit26>
<Unit27> <Unit27>
<Filename Value="uinterfaceedit.lfm"/> <Filename Value="uinterfaceedit.lfm"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="8"/> <UsageCount Value="6"/>
<SyntaxHighlighter Value="LFM"/> <SyntaxHighlighter Value="LFM"/>
</Unit27> </Unit27>
<Unit28> <Unit28>
@ -271,84 +275,80 @@
<UnitName Value="udm"/> <UnitName Value="udm"/>
<CursorPos X="15" Y="2"/> <CursorPos X="15" Y="2"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="187"/> <UsageCount Value="203"/>
</Unit28> </Unit28>
<Unit29> <Unit29>
<Filename Value="..\..\..\..\lazarus23_213\lcl\include\treeview.inc"/> <Filename Value="..\..\..\..\lazarus23_213\lcl\include\treeview.inc"/>
<CursorPos X="25" Y="68"/> <CursorPos X="25" Y="68"/>
<TopLine Value="61"/> <TopLine Value="61"/>
<UsageCount Value="3"/> <UsageCount Value="1"/>
</Unit29> </Unit29>
<Unit30> <Unit30>
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/> <Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="pascal_parser_intf"/> <UnitName Value="pascal_parser_intf"/>
<CursorPos X="7" Y="454"/> <CursorPos X="3" Y="401"/>
<TopLine Value="422"/> <TopLine Value="390"/>
<EditorIndex Value="10"/> <EditorIndex Value="12"/>
<UsageCount Value="150"/> <UsageCount Value="166"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit30> </Unit30>
<Unit31> <Unit31>
<Filename Value="..\ws_helper\pparser.pp"/> <Filename Value="..\ws_helper\pparser.pp"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="PParser"/> <UnitName Value="PParser"/>
<CursorPos X="1" Y="205"/> <CursorPos X="18" Y="1148"/>
<TopLine Value="190"/> <TopLine Value="1126"/>
<EditorIndex Value="5"/> <UsageCount Value="166"/>
<UsageCount Value="150"/>
<Loaded Value="True"/>
</Unit31> </Unit31>
<Unit32> <Unit32>
<Filename Value="..\ws_helper\logger_intf.pas"/> <Filename Value="..\ws_helper\logger_intf.pas"/>
<UnitName Value="logger_intf"/> <UnitName Value="logger_intf"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="37"/> <TopLine Value="37"/>
<UsageCount Value="34"/> <UsageCount Value="32"/>
</Unit32> </Unit32>
<Unit33> <Unit33>
<Filename Value="..\ws_helper\pastree.pp"/> <Filename Value="..\ws_helper\pastree.pp"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="PasTree"/> <UnitName Value="PasTree"/>
<CursorPos X="37" Y="658"/> <CursorPos X="46" Y="104"/>
<TopLine Value="648"/> <TopLine Value="89"/>
<EditorIndex Value="11"/> <UsageCount Value="166"/>
<UsageCount Value="150"/>
<Loaded Value="True"/>
</Unit33> </Unit33>
<Unit34> <Unit34>
<Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/> <Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/>
<CursorPos X="35" Y="71"/> <CursorPos X="35" Y="71"/>
<TopLine Value="58"/> <TopLine Value="58"/>
<UsageCount Value="2"/> <UsageCount Value="0"/>
</Unit34> </Unit34>
<Unit35> <Unit35>
<Filename Value="..\..\..\..\lazarus23_213\lcl\include\customcheckbox.inc"/> <Filename Value="..\..\..\..\lazarus23_213\lcl\include\customcheckbox.inc"/>
<CursorPos X="1" Y="120"/> <CursorPos X="1" Y="120"/>
<TopLine Value="108"/> <TopLine Value="108"/>
<UsageCount Value="3"/> <UsageCount Value="1"/>
</Unit35> </Unit35>
<Unit36> <Unit36>
<Filename Value="umain.lrs"/> <Filename Value="umain.lrs"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="5"/> <UsageCount Value="3"/>
</Unit36> </Unit36>
<Unit37> <Unit37>
<Filename Value="..\wst_rtti_filter\rtti_filters.pas"/> <Filename Value="..\wst_rtti_filter\rtti_filters.pas"/>
<UnitName Value="rtti_filters"/> <UnitName Value="rtti_filters"/>
<CursorPos X="1" Y="236"/> <CursorPos X="1" Y="236"/>
<TopLine Value="219"/> <TopLine Value="219"/>
<UsageCount Value="24"/> <UsageCount Value="22"/>
</Unit37> </Unit37>
<Unit38> <Unit38>
<Filename Value="..\ws_helper\generator.pas"/> <Filename Value="..\ws_helper\generator.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="generator"/> <UnitName Value="generator"/>
<CursorPos X="34" Y="1403"/> <CursorPos X="3" Y="2297"/>
<TopLine Value="1391"/> <TopLine Value="2388"/>
<EditorIndex Value="4"/> <EditorIndex Value="4"/>
<UsageCount Value="67"/> <UsageCount Value="83"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="36" Y="2042" ID="1"/> <Item0 X="36" Y="2042" ID="1"/>
</Bookmarks> </Bookmarks>
@ -359,49 +359,49 @@
<UnitName Value="dom_cursors"/> <UnitName Value="dom_cursors"/>
<CursorPos X="1" Y="239"/> <CursorPos X="1" Y="239"/>
<TopLine Value="222"/> <TopLine Value="222"/>
<UsageCount Value="21"/> <UsageCount Value="19"/>
</Unit39> </Unit39>
<Unit40> <Unit40>
<Filename Value="..\ws_helper\command_line_parser.pas"/> <Filename Value="..\ws_helper\command_line_parser.pas"/>
<UnitName Value="command_line_parser"/> <UnitName Value="command_line_parser"/>
<CursorPos X="20" Y="31"/> <CursorPos X="20" Y="31"/>
<TopLine Value="17"/> <TopLine Value="17"/>
<UsageCount Value="19"/> <UsageCount Value="17"/>
</Unit40> </Unit40>
<Unit41> <Unit41>
<Filename Value="..\..\..\..\..\lazarus_23_215\lcl\forms.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215\lcl\forms.pp"/>
<UnitName Value="Forms"/> <UnitName Value="Forms"/>
<CursorPos X="44" Y="10"/> <CursorPos X="44" Y="10"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="5"/> <UsageCount Value="3"/>
</Unit41> </Unit41>
<Unit42> <Unit42>
<Filename Value="..\ws_helper\pscanner.pp"/> <Filename Value="..\ws_helper\pscanner.pp"/>
<UnitName Value="PScanner"/> <UnitName Value="PScanner"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="322"/> <TopLine Value="322"/>
<UsageCount Value="8"/> <UsageCount Value="6"/>
</Unit42> </Unit42>
<Unit43> <Unit43>
<Filename Value="..\ws_helper\metadata_generator.pas"/> <Filename Value="..\ws_helper\metadata_generator.pas"/>
<UnitName Value="metadata_generator"/> <UnitName Value="metadata_generator"/>
<CursorPos X="11" Y="20"/> <CursorPos X="11" Y="20"/>
<TopLine Value="14"/> <TopLine Value="14"/>
<UsageCount Value="5"/> <UsageCount Value="3"/>
</Unit43> </Unit43>
<Unit44> <Unit44>
<Filename Value="..\ide\lazarus\wst_register.pas"/> <Filename Value="..\ide\lazarus\wst_register.pas"/>
<UnitName Value="wst_register"/> <UnitName Value="wst_register"/>
<CursorPos X="42" Y="6"/> <CursorPos X="42" Y="6"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit44> </Unit44>
<Unit45> <Unit45>
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\menuintf.pas"/> <Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\menuintf.pas"/>
<UnitName Value="MenuIntf"/> <UnitName Value="MenuIntf"/>
<CursorPos X="53" Y="417"/> <CursorPos X="53" Y="417"/>
<TopLine Value="409"/> <TopLine Value="409"/>
<UsageCount Value="6"/> <UsageCount Value="4"/>
</Unit45> </Unit45>
<Unit46> <Unit46>
<Filename Value="..\ide\lazarus\wstimportdlg.pas"/> <Filename Value="..\ide\lazarus\wstimportdlg.pas"/>
@ -410,28 +410,28 @@
<UnitName Value="wstimportdlg"/> <UnitName Value="wstimportdlg"/>
<CursorPos X="29" Y="60"/> <CursorPos X="29" Y="60"/>
<TopLine Value="154"/> <TopLine Value="154"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit46> </Unit46>
<Unit47> <Unit47>
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\lazideintf.pas"/> <Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\lazideintf.pas"/>
<UnitName Value="LazIDEIntf"/> <UnitName Value="LazIDEIntf"/>
<CursorPos X="33" Y="174"/> <CursorPos X="33" Y="174"/>
<TopLine Value="162"/> <TopLine Value="162"/>
<UsageCount Value="5"/> <UsageCount Value="3"/>
</Unit47> </Unit47>
<Unit48> <Unit48>
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\projectintf.pas"/> <Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\projectintf.pas"/>
<UnitName Value="ProjectIntf"/> <UnitName Value="ProjectIntf"/>
<CursorPos X="3" Y="284"/> <CursorPos X="3" Y="284"/>
<TopLine Value="262"/> <TopLine Value="262"/>
<UsageCount Value="5"/> <UsageCount Value="3"/>
</Unit48> </Unit48>
<Unit49> <Unit49>
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\idecommands.pas"/> <Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\idecommands.pas"/>
<UnitName Value="IDECommands"/> <UnitName Value="IDECommands"/>
<CursorPos X="47" Y="291"/> <CursorPos X="47" Y="291"/>
<TopLine Value="279"/> <TopLine Value="279"/>
<UsageCount Value="5"/> <UsageCount Value="3"/>
</Unit49> </Unit49>
<Unit50> <Unit50>
<Filename Value="uprocedit.pas"/> <Filename Value="uprocedit.pas"/>
@ -441,29 +441,31 @@
<UnitName Value="uprocedit"/> <UnitName Value="uprocedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="106"/> <UsageCount Value="122"/>
</Unit50> </Unit50>
<Unit51> <Unit51>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/>
<UnitName Value="ComCtrls"/> <UnitName Value="ComCtrls"/>
<CursorPos X="4" Y="1660"/> <CursorPos X="4" Y="1660"/>
<TopLine Value="1660"/> <TopLine Value="1660"/>
<UsageCount Value="5"/> <UsageCount Value="3"/>
</Unit51> </Unit51>
<Unit52> <Unit52>
<Filename Value="common_gui_utils.pas"/> <Filename Value="common_gui_utils.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="common_gui_utils"/> <UnitName Value="common_gui_utils"/>
<CursorPos X="2" Y="12"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="104"/> <EditorIndex Value="7"/>
<UsageCount Value="120"/>
<Loaded Value="True"/>
</Unit52> </Unit52>
<Unit53> <Unit53>
<Filename Value="..\..\..\..\..\DOCUME~1\ADMINI~1\LOCALS~1\Temp\DestBug.pas"/> <Filename Value="..\..\..\..\..\DOCUME~1\ADMINI~1\LOCALS~1\Temp\DestBug.pas"/>
<UnitName Value="DestBug"/> <UnitName Value="DestBug"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="5"/> <UsageCount Value="3"/>
</Unit53> </Unit53>
<Unit54> <Unit54>
<Filename Value="uargedit.pas"/> <Filename Value="uargedit.pas"/>
@ -473,20 +475,20 @@
<UnitName Value="uargedit"/> <UnitName Value="uargedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="97"/> <UsageCount Value="113"/>
</Unit54> </Unit54>
<Unit55> <Unit55>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/>
<UnitName Value="Win32WSControls"/> <UnitName Value="Win32WSControls"/>
<CursorPos X="1" Y="226"/> <CursorPos X="1" Y="226"/>
<TopLine Value="212"/> <TopLine Value="212"/>
<UsageCount Value="6"/> <UsageCount Value="4"/>
</Unit55> </Unit55>
<Unit56> <Unit56>
<Filename Value="umain.lfm"/> <Filename Value="umain.lfm"/>
<CursorPos X="19" Y="1822"/> <CursorPos X="19" Y="1822"/>
<TopLine Value="1858"/> <TopLine Value="1858"/>
<UsageCount Value="6"/> <UsageCount Value="4"/>
<SyntaxHighlighter Value="LFM"/> <SyntaxHighlighter Value="LFM"/>
</Unit56> </Unit56>
<Unit57> <Unit57>
@ -497,14 +499,14 @@
<UnitName Value="umoduleedit"/> <UnitName Value="umoduleedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="89"/> <UsageCount Value="105"/>
</Unit57> </Unit57>
<Unit58> <Unit58>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/>
<UnitName Value="StdCtrls"/> <UnitName Value="StdCtrls"/>
<CursorPos X="3" Y="1020"/> <CursorPos X="3" Y="1020"/>
<TopLine Value="1006"/> <TopLine Value="1006"/>
<UsageCount Value="6"/> <UsageCount Value="4"/>
</Unit58> </Unit58>
<Unit59> <Unit59>
<Filename Value="ubindingedit.pas"/> <Filename Value="ubindingedit.pas"/>
@ -514,38 +516,38 @@
<UnitName Value="ubindingedit"/> <UnitName Value="ubindingedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="79"/> <UsageCount Value="95"/>
</Unit59> </Unit59>
<Unit60> <Unit60>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
<CursorPos X="26" Y="158"/> <CursorPos X="26" Y="158"/>
<TopLine Value="135"/> <TopLine Value="135"/>
<UsageCount Value="7"/> <UsageCount Value="5"/>
</Unit60> </Unit60>
<Unit61> <Unit61>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpas.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpas.inc"/>
<CursorPos X="11" Y="550"/> <CursorPos X="11" Y="550"/>
<TopLine Value="645"/> <TopLine Value="645"/>
<UsageCount Value="7"/> <UsageCount Value="5"/>
</Unit61> </Unit61>
<Unit62> <Unit62>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\classesh.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="14" Y="697"/> <CursorPos X="14" Y="697"/>
<TopLine Value="675"/> <TopLine Value="675"/>
<UsageCount Value="10"/> <UsageCount Value="8"/>
</Unit62> </Unit62>
<Unit63> <Unit63>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\lists.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\lists.inc"/>
<CursorPos X="3" Y="408"/> <CursorPos X="3" Y="408"/>
<TopLine Value="406"/> <TopLine Value="406"/>
<UsageCount Value="7"/> <UsageCount Value="5"/>
</Unit63> </Unit63>
<Unit64> <Unit64>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\contnrs.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\contnrs.pp"/>
<UnitName Value="contnrs"/> <UnitName Value="contnrs"/>
<CursorPos X="3" Y="701"/> <CursorPos X="3" Y="701"/>
<TopLine Value="698"/> <TopLine Value="698"/>
<UsageCount Value="7"/> <UsageCount Value="5"/>
</Unit64> </Unit64>
<Unit65> <Unit65>
<Filename Value="ufrmsaveoption.pas"/> <Filename Value="ufrmsaveoption.pas"/>
@ -555,40 +557,40 @@
<UnitName Value="ufrmsaveoption"/> <UnitName Value="ufrmsaveoption"/>
<CursorPos X="42" Y="64"/> <CursorPos X="42" Y="64"/>
<TopLine Value="42"/> <TopLine Value="42"/>
<UsageCount Value="75"/> <UsageCount Value="91"/>
</Unit65> </Unit65>
<Unit66> <Unit66>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/>
<UnitName Value="Dialogs"/> <UnitName Value="Dialogs"/>
<CursorPos X="3" Y="44"/> <CursorPos X="3" Y="44"/>
<TopLine Value="27"/> <TopLine Value="27"/>
<UsageCount Value="7"/> <UsageCount Value="5"/>
</Unit66> </Unit66>
<Unit67> <Unit67>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<UnitName Value="DOM"/> <UnitName Value="DOM"/>
<CursorPos X="3" Y="1459"/> <CursorPos X="3" Y="1459"/>
<TopLine Value="1455"/> <TopLine Value="1455"/>
<UsageCount Value="7"/> <UsageCount Value="5"/>
</Unit67> </Unit67>
<Unit68> <Unit68>
<Filename Value="..\wst_rtti_filter\cursor_intf.pas"/> <Filename Value="..\wst_rtti_filter\cursor_intf.pas"/>
<UnitName Value="cursor_intf"/> <UnitName Value="cursor_intf"/>
<CursorPos X="2" Y="90"/> <CursorPos X="2" Y="90"/>
<TopLine Value="71"/> <TopLine Value="71"/>
<UsageCount Value="24"/> <UsageCount Value="22"/>
</Unit68> </Unit68>
<Unit69> <Unit69>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\control.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\control.inc"/>
<CursorPos X="1" Y="2403"/> <CursorPos X="1" Y="2403"/>
<TopLine Value="2390"/> <TopLine Value="2390"/>
<UsageCount Value="7"/> <UsageCount Value="5"/>
</Unit69> </Unit69>
<Unit70> <Unit70>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\customform.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\customform.inc"/>
<CursorPos X="1" Y="1417"/> <CursorPos X="1" Y="1417"/>
<TopLine Value="1398"/> <TopLine Value="1398"/>
<UsageCount Value="7"/> <UsageCount Value="5"/>
</Unit70> </Unit70>
<Unit71> <Unit71>
<Filename Value="ufarrayedit.pas"/> <Filename Value="ufarrayedit.pas"/>
@ -598,7 +600,7 @@
<UnitName Value="ufarrayedit"/> <UnitName Value="ufarrayedit"/>
<CursorPos X="67" Y="117"/> <CursorPos X="67" Y="117"/>
<TopLine Value="95"/> <TopLine Value="95"/>
<UsageCount Value="59"/> <UsageCount Value="75"/>
</Unit71> </Unit71>
<Unit72> <Unit72>
<Filename Value="uftypealiasedit.pas"/> <Filename Value="uftypealiasedit.pas"/>
@ -608,195 +610,93 @@
<UnitName Value="uftypealiasedit"/> <UnitName Value="uftypealiasedit"/>
<CursorPos X="21" Y="1"/> <CursorPos X="21" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="50"/> <UsageCount Value="66"/>
</Unit72> </Unit72>
<Unit73> <Unit73>
<Filename Value="..\..\..\..\..\Documents and Settings\Administrateur\Bureau\ACER\n\AWSECommerceService.pas"/> <Filename Value="..\..\..\..\..\Documents and Settings\Administrateur\Bureau\ACER\n\AWSECommerceService.pas"/>
<UnitName Value="AWSECommerceService"/> <UnitName Value="AWSECommerceService"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="19"/> <UsageCount Value="17"/>
</Unit73> </Unit73>
<Unit74> <Unit74>
<Filename Value="..\..\..\..\..\Documents and Settings\Administrateur\Bureau\ACER\n\AWSECommerceService_proxy.pas"/> <Filename Value="..\..\..\..\..\Documents and Settings\Administrateur\Bureau\ACER\n\AWSECommerceService_proxy.pas"/>
<UnitName Value="AWSECommerceService_proxy"/> <UnitName Value="AWSECommerceService_proxy"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="19"/> <UsageCount Value="17"/>
</Unit74> </Unit74>
<Unit75> <Unit75>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/>
<UnitName Value="typinfo"/> <UnitName Value="typinfo"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="22"/> <TopLine Value="22"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit75> </Unit75>
<Unit76> <Unit76>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysstrh.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysstrh.inc"/>
<CursorPos X="10" Y="84"/> <CursorPos X="10" Y="84"/>
<TopLine Value="57"/> <TopLine Value="57"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit76> </Unit76>
<Unit77> <Unit77>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysansih.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysansih.inc"/>
<CursorPos X="10" Y="24"/> <CursorPos X="10" Y="24"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit77> </Unit77>
<Unit78> <Unit78>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysansi.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysansi.inc"/>
<CursorPos X="13" Y="51"/> <CursorPos X="13" Y="51"/>
<TopLine Value="42"/> <TopLine Value="42"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit78> </Unit78>
<Unit79> <Unit79>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
<CursorPos X="11" Y="577"/> <CursorPos X="11" Y="577"/>
<TopLine Value="562"/> <TopLine Value="562"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit79> </Unit79>
<Unit80> <Unit80>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\astrings.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\astrings.inc"/>
<CursorPos X="3" Y="747"/> <CursorPos X="3" Y="747"/>
<TopLine Value="742"/> <TopLine Value="742"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit80> </Unit80>
<Unit81> <Unit81>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\streams.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\streams.inc"/>
<CursorPos X="7" Y="124"/> <CursorPos X="7" Y="124"/>
<TopLine Value="117"/> <TopLine Value="117"/>
<UsageCount Value="10"/> <UsageCount Value="8"/>
</Unit81> </Unit81>
<Unit82> <Unit82>
<Filename Value="..\wst_global.inc"/> <Filename Value="..\wst_global.inc"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="6"/> <UsageCount Value="10"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit82> </Unit82>
<Unit83>
<Filename Value="ufrecordedit.pas"/>
<ComponentName Value="fRecordEdit"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="ufrecordedit.lrs"/>
<UnitName Value="ufrecordedit"/>
<CursorPos X="35" Y="99"/>
<TopLine Value="78"/>
<EditorIndex Value="9"/>
<UsageCount Value="32"/>
<Loaded Value="True"/>
</Unit83>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="2" HistoryIndex="1">
<Position1> <Position1>
<Filename Value="..\ws_helper\pastree.pp"/> <Filename Value="ufpropedit.pas"/>
<Caret Line="542" Column="1" TopLine="527"/> <Caret Line="137" Column="15" TopLine="129"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="..\ws_helper\pastree.pp"/> <Filename Value="edit_helper.pas"/>
<Caret Line="664" Column="1" TopLine="649"/> <Caret Line="750" Column="23" TopLine="739"/>
</Position2> </Position2>
<Position3>
<Filename Value="..\ws_helper\pastree.pp"/>
<Caret Line="538" Column="1" TopLine="523"/>
</Position3>
<Position4>
<Filename Value="..\ws_helper\pastree.pp"/>
<Caret Line="539" Column="1" TopLine="524"/>
</Position4>
<Position5>
<Filename Value="..\ws_helper\pastree.pp"/>
<Caret Line="542" Column="1" TopLine="527"/>
</Position5>
<Position6>
<Filename Value="..\ws_helper\pastree.pp"/>
<Caret Line="664" Column="1" TopLine="649"/>
</Position6>
<Position7>
<Filename Value="..\ws_helper\pastree.pp"/>
<Caret Line="538" Column="1" TopLine="523"/>
</Position7>
<Position8>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="209" Column="50" TopLine="190"/>
</Position8>
<Position9>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position9>
<Position10>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="63" Column="57" TopLine="40"/>
</Position10>
<Position11>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="80" Column="65" TopLine="58"/>
</Position11>
<Position12>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="132" Column="47" TopLine="110"/>
</Position12>
<Position13>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="133" Column="47" TopLine="111"/>
</Position13>
<Position14>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="188" Column="71" TopLine="166"/>
</Position14>
<Position15>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="669" Column="54" TopLine="647"/>
</Position15>
<Position16>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="680" Column="54" TopLine="673"/>
</Position16>
<Position17>
<Filename Value="typ_lib_edtr.lpr"/>
<Caret Line="21" Column="1" TopLine="1"/>
</Position17>
<Position18>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="209" Column="48" TopLine="190"/>
</Position18>
<Position19>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="234" Column="1" TopLine="219"/>
</Position19>
<Position20>
<Filename Value="..\ws_helper\pastree.pp"/>
<Caret Line="663" Column="1" TopLine="648"/>
</Position20>
<Position21>
<Filename Value="..\ws_helper\pastree.pp"/>
<Caret Line="664" Column="1" TopLine="649"/>
</Position21>
<Position22>
<Filename Value="..\ws_helper\pastree.pp"/>
<Caret Line="538" Column="1" TopLine="523"/>
</Position22>
<Position23>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="196" Column="25" TopLine="192"/>
</Position23>
<Position24>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position24>
<Position25>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="196" Column="25" TopLine="181"/>
</Position25>
<Position26>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="793" Column="32" TopLine="766"/>
</Position26>
<Position27>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position27>
<Position28>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="234" Column="1" TopLine="201"/>
</Position28>
<Position29>
<Filename Value="..\ws_helper\pparser.pp"/>
<Caret Line="205" Column="1" TopLine="190"/>
</Position29>
<Position30>
<Filename Value="typ_lib_edtr.lpr"/>
<Caret Line="21" Column="1" TopLine="1"/>
</Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -12,7 +12,7 @@ uses
edit_helper, ufclassedit, wsdl_generator, ufpropedit, uinterfaceedit, udm, edit_helper, ufclassedit, wsdl_generator, ufpropedit, uinterfaceedit, udm,
pascal_parser_intf, PasTree, PParser, uprocedit, common_gui_utils, uargedit, pascal_parser_intf, PasTree, PParser, uprocedit, common_gui_utils, uargedit,
umoduleedit, ubindingedit, ufrmsaveoption, ufarrayedit, generator, umoduleedit, ubindingedit, ufrmsaveoption, ufarrayedit, generator,
uftypealiasedit; uftypealiasedit, ufrecordedit;
begin begin
Application.Initialize; Application.Initialize;

View File

@ -1,7 +1,7 @@
object fClassEdit: TfClassEdit object fClassEdit: TfClassEdit
Left = 358 Left = 272
Height = 547 Height = 547
Top = 113 Top = 42
Width = 518 Width = 518
HorzScrollBar.Page = 517 HorzScrollBar.Page = 517
VertScrollBar.Page = 546 VertScrollBar.Page = 546
@ -104,7 +104,8 @@ object fClassEdit: TfClassEdit
Width = 200 Width = 200
end end
item item
Caption = 'Attrbute' Caption = 'Attribute'
Width = 60
end> end>
PopupMenu = PopupMenu1 PopupMenu = PopupMenu1
RowSelect = True RowSelect = True

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('TfClassEdit','FORMDATA',[ LazarusResources.Add('TfClassEdit','FORMDATA',[
'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3'f'#1#6'Height'#3'#'#2#3'Top'#2 'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3#16#1#6'Height'#3'#'#2#3'Top'#2
+'q'#5'Width'#3#6#2#18'HorzScrollBar.Page'#3#5#2#18'VertScrollBar.Page'#3'"'#2 +'*'#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#7'Button1'#11'BorderStyle'#7#13'bsSizeToolWin'#7'Captio'
+'n'#6#10'fClassEdit'#12'ClientHeight'#3'#'#2#11'ClientWidth'#3#6#2#8'Positio' +'n'#6#10'fClassEdit'#12'ClientHeight'#3'#'#2#11'ClientWidth'#3#6#2#8'Positio'
+'n'#7#15'poDesktopCenter'#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'#3#241#1 +'n'#7#15'poDesktopCenter'#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'#3#241#1
@ -27,32 +27,32 @@ LazarusResources.Add('TfClassEdit','FORMDATA',[
+#1#11'ClientWidth'#3#235#1#8'TabOrder'#2#1#0#9'TListView'#7'edtProp'#6'Heigh' +#1#11'ClientWidth'#3#235#1#8'TabOrder'#2#1#0#9'TListView'#7'edtProp'#6'Heigh'
+'t'#3'&'#1#5'Width'#3#235#1#5'Align'#7#8'alClient'#11'BorderWidth'#2#2#7'Col' +'t'#3'&'#1#5'Width'#3#235#1#5'Align'#7#8'alClient'#11'BorderWidth'#2#2#7'Col'
+'umns'#14#1#8'AutoSize'#9#7'Caption'#6#4'Name'#5'Width'#3#210#0#0#1#7'Captio' +'umns'#14#1#8'AutoSize'#9#7'Caption'#6#4'Name'#5'Width'#3#210#0#0#1#7'Captio'
+'n'#6#4'Type'#5'Width'#3#200#0#0#1#7'Caption'#6#8'Attrbute'#0#0#9'PopupMenu' +'n'#6#4'Type'#5'Width'#3#200#0#0#1#7'Caption'#6#9'Attribute'#5'Width'#2'<'#0
+#7#10'PopupMenu1'#9'RowSelect'#9#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport' +#0#9'PopupMenu'#7#10'PopupMenu1'#9'RowSelect'#9#8'TabOrder'#2#0#9'ViewStyle'
+#10'OnDblClick'#7#15'edtPropDblClick'#0#0#0#7'TButton'#7'Button3'#4'Left'#2#4 +#7#8'vsReport'#10'OnDblClick'#7#15'edtPropDblClick'#0#0#0#7'TButton'#7'Butto'
+#6'Height'#2#25#3'Top'#3#165#1#5'Width'#2'd'#6'Action'#7#10'actPropAdd'#7'An' +'n3'#4'Left'#2#4#6'Height'#2#25#3'Top'#3#165#1#5'Width'#2'd'#6'Action'#7#10
+'chors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOr' +'actPropAdd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBor'
+'der'#2#2#0#0#7'TButton'#7'Button4'#4'Left'#2't'#6'Height'#2#25#3'Top'#3#165 +'der'#2#4#8'TabOrder'#2#2#0#0#7'TButton'#7'Button4'#4'Left'#2't'#6'Height'#2
+#1#5'Width'#2'd'#6'Action'#7#11'actPropEdit'#7'Anchors'#11#6'akLeft'#8'akBot' +#25#3'Top'#3#165#1#5'Width'#2'd'#6'Action'#7#11'actPropEdit'#7'Anchors'#11#6
+'tom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#3#0#0#7'TButton'#7'B' +'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#3#0#0
+'utton5'#4'Left'#3#228#0#6'Height'#2#25#3'Top'#3#165#1#5'Width'#2'd'#6'Actio' +#7'TButton'#7'Button5'#4'Left'#3#228#0#6'Height'#2#25#3'Top'#3#165#1#5'Width'
+'n'#7#13'actPropDelete'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpaci' +#2'd'#6'Action'#7#13'actPropDelete'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25
+'ng.InnerBorder'#2#4#8'TabOrder'#2#4#0#0#9'TComboBox'#9'edtParent'#4'Left'#2 +'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#4#0#0#9'TComboBox'#9'edtParent'
+'\'#6'Height'#2#21#3'Top'#2':'#5'Width'#3#150#1#7'Anchors'#11#5'akTop'#6'akL' +#4'Left'#2'\'#6'Height'#2#21#3'Top'#2':'#5'Width'#3#150#1#7'Anchors'#11#5'ak'
+'eft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cba' +'Top'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComple'
+'ctSearchAscending'#0#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'#7#14'csD' +'te'#20'cbactSearchAscending'#0#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'
+'ropDownList'#8'TabOrder'#2#5#0#0#0#0#11'TActionList'#11'ActionList1'#4'left' +#7#14'csDropDownList'#8'TabOrder'#2#5#0#0#0#0#11'TActionList'#11'ActionList1'
+#3#232#0#3'top'#3#200#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableI' +#4'left'#3#232#0#3'top'#3#200#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18
+'fNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate' +'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actO'
+#0#0#7'TAction'#10'actPropAdd'#7'Caption'#6#12'New Property'#18'DisableIfNoH' +'KUpdate'#0#0#7'TAction'#10'actPropAdd'#7'Caption'#6#12'New Property'#18'Dis'
+'andler'#9#9'OnExecute'#7#17'actPropAddExecute'#0#0#7'TAction'#11'actPropEdi' +'ableIfNoHandler'#9#9'OnExecute'#7#17'actPropAddExecute'#0#0#7'TAction'#11'a'
+'t'#7'Caption'#6#13'Edit Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18 +'ctPropEdit'#7'Caption'#6#13'Edit Property'#18'DisableIfNoHandler'#9#9'OnExe'
+'actPropEditExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#13'a' +'cute'#7#18'actPropEditExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TA'
+'ctPropDelete'#7'Caption'#6#15'Delete Property'#18'DisableIfNoHandler'#9#9'O' +'ction'#13'actPropDelete'#7'Caption'#6#15'Delete Property'#18'DisableIfNoHan'
+'nExecute'#7#20'actPropDeleteExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0 +'dler'#9#9'OnExecute'#7#20'actPropDeleteExecute'#8'OnUpdate'#7#17'actPropEdi'
+#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#2'i'#3'top'#3#186#0#0#9'TMenuItem'#9 +'tUpdate'#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#2'i'#3'top'#3#186#0#0#9
+'MenuItem1'#6'Action'#7#10'actPropAdd'#7'OnClick'#7#17'actPropAddExecute'#0#0 +'TMenuItem'#9'MenuItem1'#6'Action'#7#10'actPropAdd'#7'OnClick'#7#17'actPropA'
+#9'TMenuItem'#9'MenuItem2'#6'Action'#7#11'actPropEdit'#7'OnClick'#7#18'actPr' +'ddExecute'#0#0#9'TMenuItem'#9'MenuItem2'#6'Action'#7#11'actPropEdit'#7'OnCl'
+'opEditExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#13'actPropDelete'#7 +'ick'#7#18'actPropEditExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#13
+'OnClick'#7#20'actPropDeleteExecute'#0#0#0#0 +'actPropDelete'#7'OnClick'#7#20'actPropDeleteExecute'#0#0#0#0
]); ]);

View File

@ -91,7 +91,7 @@ procedure TfClassEdit.actPropAddExecute(Sender: TObject);
var var
prp : TPasProperty; prp : TPasProperty;
begin begin
prp := CreateProperty(FObject,FSymbolTable); prp := CreateProperty(FObject,FSymbolTable) as TPasProperty;
if Assigned(prp) then begin if Assigned(prp) then begin
LoadProperty(prp); LoadProperty(prp);
end; end;

View File

@ -44,19 +44,21 @@ type
procedure actOKExecute(Sender: TObject); procedure actOKExecute(Sender: TObject);
procedure actOKUpdate(Sender: TObject); procedure actOKUpdate(Sender: TObject);
private private
FClassObject: TPasClassType; FClassObject: TPasType;
FUpdateType : TEditType; FUpdateType : TEditType;
FObject : TPasProperty; FObject : TPasVariable;
FSymbolTable : TwstPasTreeContainer; FSymbolTable : TwstPasTreeContainer;
private private
property UpdateType : TEditType read FUpdateType; property UpdateType : TEditType read FUpdateType;
property ClassObject : TPasClassType read FClassObject; property ClassObject : TPasType read FClassObject;
private private
procedure LoadFromObject(); procedure LoadFromObject();
procedure SaveToObject(); procedure SaveToObject();
function GetMembers() : TList;
function IsClassType() : Boolean;
public public
function UpdateObject( function UpdateObject(
var AObject : TPasProperty; var AObject : TPasVariable;
const AUpdateType : TEditType; const AUpdateType : TEditType;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
) : Boolean; ) : Boolean;
@ -65,16 +67,21 @@ type
var var
fPropEdit: TfPropEdit; fPropEdit: TfPropEdit;
function CreateProperty(AClass : TPasClassType; ASymboltable : TwstPasTreeContainer):TPasProperty ; function CreateProperty(AClass : TPasType; ASymboltable : TwstPasTreeContainer):TPasVariable ;
function UpdateProperty(AProp : TPasProperty; ASymboltable : TwstPasTreeContainer):Boolean; function UpdateProperty(AProp : TPasVariable; ASymboltable : TwstPasTreeContainer):Boolean;
implementation implementation
uses parserutils; uses parserutils;
function CreateProperty(AClass : TPasClassType; ASymboltable : TwstPasTreeContainer):TPasProperty ; function CreateProperty(AClass : TPasType; ASymboltable : TwstPasTreeContainer):TPasVariable ;
var var
f : TfPropEdit; f : TfPropEdit;
begin begin
if ( AClass = nil ) or
( not ( AClass.InheritsFrom(TPasClassType) or AClass.InheritsFrom(TPasRecordType) ) )
then begin
raise Exception.Create('Class or record expected.');
end;
Result := nil; Result := nil;
f := TfPropEdit.Create(Application); f := TfPropEdit.Create(Application);
try try
@ -85,12 +92,13 @@ begin
end; end;
end; end;
function UpdateProperty(AProp : TPasProperty; ASymboltable : TwstPasTreeContainer):Boolean; function UpdateProperty(AProp : TPasVariable; ASymboltable : TwstPasTreeContainer):Boolean;
var var
f : TfPropEdit; f : TfPropEdit;
begin begin
f := TfPropEdit.Create(Application); f := TfPropEdit.Create(Application);
try try
f.FClassObject := AProp.Parent as TPasType;
Result := f.UpdateObject(AProp,etUpdate,ASymboltable); Result := f.UpdateObject(AProp,etUpdate,ASymboltable);
finally finally
f.Release(); f.Release();
@ -107,7 +115,11 @@ begin
TAction(Sender).Enabled := TAction(Sender).Enabled :=
( not IsStrEmpty(internalName) ) and ( not IsStrEmpty(internalName) ) and
( edtType.ItemIndex >= 0 ) and ( edtType.ItemIndex >= 0 ) and
( FindMember(ClassObject,internalName) = nil ); ( ( UpdateType = etUpdate ) or
( ( ClassObject.InheritsFrom(TPasClassType) and ( FindMember(TPasClassType(ClassObject),internalName) = nil ) ) or
( ClassObject.InheritsFrom(TPasRecordType) and ( FindMember(TPasRecordType(ClassObject),internalName) = nil ) )
)
);
end; end;
procedure TfPropEdit.actOKExecute(Sender: TObject); procedure TfPropEdit.actOKExecute(Sender: TObject);
@ -116,6 +128,9 @@ begin
end; end;
procedure TfPropEdit.LoadFromObject(); procedure TfPropEdit.LoadFromObject();
var
i : PtrInt;
ls : TStrings;
begin begin
edtName.Text := ''; edtName.Text := '';
edtType.Clear(); edtType.Clear();
@ -123,6 +138,16 @@ begin
try try
edtType.Items.Clear(); edtType.Items.Clear();
FillTypeList(edtType.Items,FSymbolTable); FillTypeList(edtType.Items,FSymbolTable);
ls := edtType.Items;
if IsClassType() then begin
i := ls.Count - 1;
while ( i > 0 ) do begin
if ls.Objects[i].InheritsFrom(TPasRecordType) then begin
ls.Delete(i);
end;
Dec(i);
end;
end;
finally finally
edtType.Items.EndUpdate(); edtType.Items.EndUpdate();
end; end;
@ -131,7 +156,12 @@ begin
edtName.Text := FSymbolTable.GetExternalName(FObject); edtName.Text := FSymbolTable.GetExternalName(FObject);
edtType.ItemIndex := edtType.Items.IndexOfObject(FObject.VarType); edtType.ItemIndex := edtType.Items.IndexOfObject(FObject.VarType);
edtAttribute.Checked := FSymbolTable.IsAttributeProperty(FObject); edtAttribute.Checked := FSymbolTable.IsAttributeProperty(FObject);
edtOptional.Checked := AnsiSameText('Has',Copy(FObject.StoredAccessorName,1,3)) ; if IsClassType() then begin
edtOptional.Checked := AnsiSameText('Has',Copy(TPasProperty(FObject).StoredAccessorName,1,3)) ;
end else begin
edtOptional.Checked := True;
edtOptional.Enabled := False;
end;
end else begin end else begin
Self.Caption := 'New'; Self.Caption := 'New';
end; end;
@ -139,21 +169,29 @@ end;
procedure TfPropEdit.SaveToObject(); procedure TfPropEdit.SaveToObject();
var var
locObj : TPasProperty; locObj : TPasVariable;
locObjProp : TPasProperty;
typExtName, typIntName : string; typExtName, typIntName : string;
propType : TPasType; propType : TPasType;
eltClass : TPTreeElement;
locIsClass : Boolean;
begin begin
locObj := nil; locObj := nil;
locIsClass := IsClassType();
if locIsClass then
eltClass := TPasProperty
else
eltClass := TPasVariable;
typExtName := ExtractIdentifier(edtName.Text); typExtName := ExtractIdentifier(edtName.Text);
typIntName := MakeInternalSymbolNameFrom(typExtName); typIntName := MakeInternalSymbolNameFrom(typExtName);
propType := edtType.Items.Objects[edtType.ItemIndex] as TPasType; propType := edtType.Items.Objects[edtType.ItemIndex] as TPasType;
if ( UpdateType = etCreate ) then begin if ( UpdateType = etCreate ) then begin
locObj := TPasProperty(FSymbolTable.CreateElement(TPasProperty,typIntName,ClassObject,visPublished,'',0)); locObj := TPasVariable(FSymbolTable.CreateElement(eltClass,typIntName,ClassObject,visPublished,'',0));
FreeAndNil(FObject); FreeAndNil(FObject);
FObject := locObj; FObject := locObj;
locObj.VarType := propType; locObj.VarType := propType;
locObj.VarType.AddRef(); locObj.VarType.AddRef();
ClassObject.Members.Add(FObject); GetMembers().Add(FObject);
end else begin end else begin
locObj := FObject; locObj := FObject;
if ( propType <> locObj.VarType ) then begin if ( propType <> locObj.VarType ) then begin
@ -164,19 +202,37 @@ begin
end; end;
locObj.Name := typIntName; locObj.Name := typIntName;
end; end;
if edtOptional.Checked then if IsClassType() then begin
locObj.StoredAccessorName := 'Has' + locObj.Name locObjProp := locObj as TPasProperty;
else if edtOptional.Checked then
locObj.StoredAccessorName := 'True'; locObjProp.StoredAccessorName := 'Has' + locObjProp.Name
locObj.ReadAccessorName := 'F' + locObj.Name; else
locObj.WriteAccessorName := 'F' + locObj.Name; locObjProp.StoredAccessorName := 'True';
locObjProp.ReadAccessorName := 'F' + locObjProp.Name;
locObjProp.WriteAccessorName := 'F' + locObjProp.Name;
end;
FSymbolTable.RegisterExternalAlias(locObj,typExtName); FSymbolTable.RegisterExternalAlias(locObj,typExtName);
//if ( edtAttribute.Checked <> FSymbolTable.IsAttributeProperty(locObj) ) then //if ( edtAttribute.Checked <> FSymbolTable.IsAttributeProperty(locObj) ) then
FSymbolTable.SetPropertyAsAttribute(locObj,edtAttribute.Checked); FSymbolTable.SetPropertyAsAttribute(locObj,edtAttribute.Checked);
end; end;
function TfPropEdit.GetMembers() : TList;
begin
if ClassObject.InheritsFrom(TPasClassType) then
Result := TPasClassType(ClassObject).Members
else if ClassObject.InheritsFrom(TPasRecordType) then
Result := TPasRecordType(ClassObject).Members
else
Result := nil;
end;
function TfPropEdit.IsClassType() : Boolean;
begin
Result := ClassObject.InheritsFrom(TPasClassType);
end;
function TfPropEdit.UpdateObject( function TfPropEdit.UpdateObject(
var AObject : TPasProperty; var AObject : TPasVariable;
const AUpdateType : TEditType; const AUpdateType : TEditType;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;

View File

@ -0,0 +1,178 @@
object fRecordEdit: TfRecordEdit
Left = 701
Height = 542
Top = 128
Width = 517
HorzScrollBar.Page = 516
VertScrollBar.Page = 541
ActiveControl = edtName
Caption = 'fRecordEdit'
ClientHeight = 542
ClientWidth = 517
Position = poDesktopCenter
object PageControl1: TPageControl
Height = 492
Width = 517
ActivePage = TabSheet1
Align = alClient
TabIndex = 0
TabOrder = 0
object TabSheet1: TTabSheet
Caption = 'Record Type'
ClientHeight = 466
ClientWidth = 509
object Label1: TLabel
Left = 20
Height = 14
Top = 34
Width = 28
Caption = 'Name'
ParentColor = False
end
object edtName: TEdit
Left = 76
Height = 23
Top = 34
Width = 409
Anchors = [akTop, akLeft, akRight]
TabOrder = 0
end
object GroupBox1: TGroupBox
Left = 20
Height = 320
Top = 82
Width = 465
Anchors = [akTop, akLeft, akRight, akBottom]
Caption = ' Fields '
ClientHeight = 302
ClientWidth = 461
TabOrder = 1
object edtFields: TListView
Height = 302
Width = 461
Align = alClient
Columns = <
item
Caption = 'Name'
Width = 200
end
item
Caption = 'Type'
Width = 190
end
item
Caption = 'Attribute'
Width = 60
end>
PopupMenu = PopupMenu1
TabOrder = 0
ViewStyle = vsReport
end
end
object Button3: TButton
Left = 20
Height = 25
Top = 418
Width = 100
Action = actPropAdd
Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4
TabOrder = 2
end
object Button4: TButton
Left = 132
Height = 25
Top = 418
Width = 100
Action = actPropEdit
Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4
TabOrder = 3
end
object Button5: TButton
Left = 244
Height = 25
Top = 418
Width = 100
Action = actPropDelete
Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4
TabOrder = 4
end
end
end
object Panel1: TPanel
Height = 50
Top = 492
Width = 517
Align = alBottom
ClientHeight = 50
ClientWidth = 517
TabOrder = 1
object Button1: TButton
Left = 328
Height = 25
Top = 13
Width = 75
Action = actOK
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 4
TabOrder = 0
end
object Button2: TButton
Left = 416
Height = 25
Top = 13
Width = 75
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 4
Cancel = True
Caption = 'Cancel'
ModalResult = 2
TabOrder = 1
end
end
object ActionList1: TActionList
left = 128
top = 208
object actOK: TAction
Caption = 'OK'
DisableIfNoHandler = True
OnExecute = actOKExecute
OnUpdate = actOKUpdate
end
object actPropAdd: TAction
Caption = 'New Property'
DisableIfNoHandler = True
OnExecute = actPropAddExecute
end
object actPropEdit: TAction
Caption = 'Edit Property'
DisableIfNoHandler = True
OnExecute = actPropEditExecute
OnUpdate = actPropEditUpdate
end
object actPropDelete: TAction
Caption = 'Delete Property'
DisableIfNoHandler = True
OnExecute = actPropDeleteExecute
OnUpdate = actPropEditUpdate
end
end
object PopupMenu1: TPopupMenu
left = 112
top = 256
object MenuItem1: TMenuItem
Action = actPropAdd
OnClick = actPropAddExecute
end
object MenuItem2: TMenuItem
Action = actPropEdit
OnClick = actPropEditExecute
end
object MenuItem3: TMenuItem
Action = actPropDelete
OnClick = actPropDeleteExecute
end
end
end

View File

@ -0,0 +1,51 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfRecordEdit','FORMDATA',[
'TPF0'#12'TfRecordEdit'#11'fRecordEdit'#4'Left'#3#189#2#6'Height'#3#30#2#3'To'
+'p'#3#128#0#5'Width'#3#5#2#18'HorzScrollBar.Page'#3#4#2#18'VertScrollBar.Pag'
+'e'#3#29#2#13'ActiveControl'#7#7'edtName'#7'Caption'#6#11'fRecordEdit'#12'Cl'
+'ientHeight'#3#30#2#11'ClientWidth'#3#5#2#8'Position'#7#15'poDesktopCenter'#0
+#12'TPageControl'#12'PageControl1'#6'Height'#3#236#1#5'Width'#3#5#2#10'Activ'
+'ePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8'TabOrder'#2#0
+#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#11'Record Type'#12'ClientHeight'#3
+#210#1#11'ClientWidth'#3#253#1#0#6'TLabel'#6'Label1'#4'Left'#2#20#6'Height'#2
+#14#3'Top'#2'"'#5'Width'#2#28#7'Caption'#6#4'Name'#11'ParentColor'#8#0#0#5'T'
+'Edit'#7'edtName'#4'Left'#2'L'#6'Height'#2#23#3'Top'#2'"'#5'Width'#3#153#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#9'TGroupBox'
+#9'GroupBox1'#4'Left'#2#20#6'Height'#3'@'#1#3'Top'#2'R'#5'Width'#3#209#1#7'A'
+'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#10' Fi'
+'elds '#12'ClientHeight'#3'.'#1#11'ClientWidth'#3#205#1#8'TabOrder'#2#1#0#9
+'TListView'#9'edtFields'#6'Height'#3'.'#1#5'Width'#3#205#1#5'Align'#7#8'alCl'
+'ient'#7'Columns'#14#1#7'Caption'#6#4'Name'#5'Width'#3#200#0#0#1#7'Caption'#6
+#4'Type'#5'Width'#3#190#0#0#1#7'Caption'#6#9'Attribute'#5'Width'#2'<'#0#0#9
+'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'#0#0#0
+#7'TButton'#7'Button3'#4'Left'#2#20#6'Height'#2#25#3'Top'#3#162#1#5'Width'#2
+'d'#6'Action'#7#10'actPropAdd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'Bord'
+'erSpacing.InnerBorder'#2#4#8'TabOrder'#2#2#0#0#7'TButton'#7'Button4'#4'Left'
+#3#132#0#6'Height'#2#25#3'Top'#3#162#1#5'Width'#2'd'#6'Action'#7#11'actPropE'
+'dit'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4
+#8'TabOrder'#2#3#0#0#7'TButton'#7'Button5'#4'Left'#3#244#0#6'Height'#2#25#3
+'Top'#3#162#1#5'Width'#2'd'#6'Action'#7#13'actPropDelete'#7'Anchors'#11#6'ak'
+'Left'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#4#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'ClientWidth'#3#5#2#8'TabOrder'#2#1#0
+#7'TButton'#7'Button1'#4'Left'#3'H'#1#6'Height'#2#25#3'Top'#2#13#5'Width'#2
+'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacin'
+'g.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#160#1
+#6'Height'#2#25#3'Top'#2#13#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#1#0#0#0#11'TActionList'#11'ActionList1'#4'left'
+#3#128#0#3'top'#3#208#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableI'
+'fNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'
+#0#0#7'TAction'#10'actPropAdd'#7'Caption'#6#12'New Property'#18'DisableIfNoH'
+'andler'#9#9'OnExecute'#7#17'actPropAddExecute'#0#0#7'TAction'#11'actPropEdi'
+'t'#7'Caption'#6#13'Edit Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18
+'actPropEditExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#13'a'
+'ctPropDelete'#7'Caption'#6#15'Delete Property'#18'DisableIfNoHandler'#9#9'O'
+'nExecute'#7#20'actPropDeleteExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#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'actPropEdit'#7'OnClick'#7#18'actPr'
+'opEditExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#13'actPropDelete'#7
+'OnClick'#7#20'actPropDeleteExecute'#0#0#0#0
]);

View File

@ -0,0 +1,233 @@
{
This file is part of the Web Service Toolkit
Copyright (c) 2007 by Inoussa OUEDRAOGO
This file is provide under modified LGPL licence
( the files COPYING.modifiedLGPL and COPYING.LGPL).
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}
unit ufrecordedit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,
ExtCtrls, StdCtrls, ActnList, Menus,
pastree, pascal_parser_intf,
edit_helper;
type
{ TfRecordEdit }
TfRecordEdit = class(TForm)
actPropAdd : TAction;
actPropEdit : TAction;
actPropDelete : TAction;
actOK : TAction;
ActionList1 : TActionList;
Button1 : TButton;
Button2 : TButton;
Button3 : TButton;
Button4 : TButton;
Button5 : TButton;
edtName : TEdit;
GroupBox1 : TGroupBox;
Label1 : TLabel;
edtFields : TListView;
MenuItem1 : TMenuItem;
MenuItem2 : TMenuItem;
MenuItem3 : TMenuItem;
PageControl1 : TPageControl;
Panel1 : TPanel;
PopupMenu1 : TPopupMenu;
TabSheet1 : TTabSheet;
procedure actOKExecute(Sender : TObject);
procedure actOKUpdate(Sender : TObject);
procedure actPropAddExecute(Sender : TObject);
procedure actPropDeleteExecute(Sender : TObject);
procedure actPropEditExecute(Sender : TObject);
procedure actPropEditUpdate(Sender : TObject);
private
FUpdateType : TEditType;
FObject : TPasRecordType;
FSymbolTable : TwstPasTreeContainer;
private
property UpdateType : TEditType read FUpdateType;
private
procedure LoadField(AFieldDef : TPasVariable);
procedure LoadFromObject();
procedure SaveToObject();
public
function UpdateObject(
var AObject : TPasRecordType;
const AUpdateType : TEditType;
ASymbolTable : TwstPasTreeContainer
):Boolean;
end;
var
fRecordEdit : TfRecordEdit;
implementation
uses common_gui_utils, parserutils, ufpropedit;
{ TfRecordEdit }
procedure TfRecordEdit.actOKUpdate(Sender : TObject);
begin
TAction(Sender).Enabled := not IsStrEmpty(ExtractIdentifier(edtName.Text));
end;
procedure TfRecordEdit.actPropAddExecute(Sender : TObject);
var
prp : TPasVariable;
begin
prp := CreateProperty(FObject,FSymbolTable);
if Assigned(prp) then begin
LoadField(prp);
end;
end;
procedure TfRecordEdit.actPropDeleteExecute(Sender : TObject);
var
prop : TPasVariable;
begin
prop := TPasVariable(edtFields.ItemFocused.Data);
FObject.Members.Extract(prop);
prop.Release();
edtFields.ItemFocused.Free();
end;
procedure TfRecordEdit.actPropEditExecute(Sender : TObject);
var
prp : TPasVariable;
itm : TListItem;
begin
itm := edtFields.ItemFocused;
if Assigned(itm) then begin
prp := TPasVariable(itm.Data);
if UpdateProperty(prp,FSymbolTable) then begin
itm.Free();
LoadField(prp);
end;
end;
end;
procedure TfRecordEdit.actPropEditUpdate(Sender : TObject);
begin
TAction(Sender).Enabled := Assigned(edtFields.ItemFocused);
end;
procedure TfRecordEdit.actOKExecute(Sender : TObject);
begin
ModalResult := mrOk;
end;
procedure TfRecordEdit.LoadField(AFieldDef : TPasVariable);
var
itm : TListItem;
s, extName : string;
begin
extName := FSymbolTable.GetExternalName(AFieldDef);
itm := FindItem(extName,edtFields.Items);
if ( itm = nil ) then begin
itm := edtFields.Items.Add();
end;
itm.Caption := extName;
itm.SubItems.Add(FSymbolTable.GetExternalName(AFieldDef.VarType));
if FSymbolTable.IsAttributeProperty(AFieldDef) then begin
s := 'Y';
end else begin
s := 'N';
end;
itm.SubItems.Add(s);
itm.Data := AFieldDef;
end;
procedure TfRecordEdit.LoadFromObject();
var
i : Integer;
prp : TPasVariable;
extName : string;
begin
edtName.Text := '';
edtFields.Clear();
if Assigned(FObject) then begin
extName := FSymbolTable.GetExternalName(FObject);
Self.Caption := extName;
edtName.Text := extName;
for i := 0 to Pred(FObject.Members.Count) do begin
if TPasElement(FObject.Members[i]).InheritsFrom(TPasVariable) then begin
prp := TPasVariable(FObject.Members[i]);
LoadField(prp);
end;
end;
end else begin
Self.Caption := 'New';
end;
end;
procedure TfRecordEdit.SaveToObject();
var
typExtName, typIntName : string;
locObj : TPasRecordType;
begin
locObj := nil;
typExtName := ExtractIdentifier(edtName.Text);
typIntName := MakeInternalSymbolNameFrom(typExtName);
locObj := FObject;
locObj.Name := typIntName;
FSymbolTable.RegisterExternalAlias(locObj,typExtName);
end;
function TfRecordEdit.UpdateObject(
var AObject : TPasRecordType;
const AUpdateType : TEditType;
ASymbolTable : TwstPasTreeContainer
) : Boolean;
begin
Assert(Assigned(ASymbolTable));
FSymbolTable := ASymbolTable;
FUpdateType := AUpdateType;
FObject := AObject;
if ( UpdateType = etCreate ) and ( FObject = nil ) then begin
FObject := TPasRecordType(FSymbolTable.CreateElement(TPasRecordType,'new_record',FSymbolTable.CurrentModule.InterfaceSection,visDefault,'',0));
FSymbolTable.CurrentModule.InterfaceSection.Declarations.Add(FObject);
FSymbolTable.CurrentModule.InterfaceSection.Types.Add(FObject);
end;
try
LoadFromObject();
Result := ( ShowModal() = mrOK );
if Result then begin
try
SaveToObject();
if ( AUpdateType = etCreate ) then begin
AObject := FObject;
end;
except
Result := False;
raise;
end;
end;
finally
if ( not Result ) and ( UpdateType = etCreate ) and ( AObject = nil ) then begin
FSymbolTable.CurrentModule.InterfaceSection.Declarations.Extract(FObject);
FSymbolTable.CurrentModule.InterfaceSection.Types.Extract(FObject);
FObject.Release();
FObject := nil;
end;
end;
end;
initialization
{$I ufrecordedit.lrs}
end.

View File

@ -78,11 +78,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 = <
@ -407,7 +405,6 @@ 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
@ -427,9 +424,7 @@ 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 = <
@ -754,7 +749,6 @@ 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
@ -774,9 +768,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 = <
@ -1101,6 +1097,7 @@ 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
@ -1120,9 +1117,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 = <
@ -1447,6 +1446,7 @@ 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
@ -1466,10 +1466,12 @@ 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 = <
@ -1794,6 +1796,7 @@ 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
@ -1884,6 +1887,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Action = actCompoundCreate Action = actCompoundCreate
OnClick = actCompoundCreateExecute OnClick = actCompoundCreateExecute
end end
object MenuItem48: TMenuItem
Action = actRecordCreate
OnClick = actRecordCreateExecute
end
object MenuItem25: TMenuItem object MenuItem25: TMenuItem
Action = actIntfCreate Action = actIntfCreate
OnClick = actIntfCreateExecute OnClick = actIntfCreateExecute
@ -1967,7 +1974,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
OnExecute = actNewFileExecute OnExecute = actNewFileExecute
end end
object actCompoundCreate: TAction object actCompoundCreate: TAction
Caption = 'Create Compound Type' Caption = 'Create Class Type'
DisableIfNoHandler = True DisableIfNoHandler = True
OnExecute = actCompoundCreateExecute OnExecute = actCompoundCreateExecute
end end
@ -2007,6 +2014,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
DisableIfNoHandler = True DisableIfNoHandler = True
OnExecute = actTypeALiasCreateExecute OnExecute = actTypeALiasCreateExecute
end end
object actRecordCreate: TAction
Caption = 'Create Record'
DisableIfNoHandler = True
OnExecute = actRecordCreateExecute
end
end end
object OD: TOpenDialog object OD: TOpenDialog
Title = 'Ouvrir un fichier existant' Title = 'Ouvrir un fichier existant'
@ -2064,6 +2076,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Action = actCompoundCreate Action = actCompoundCreate
OnClick = actCompoundCreateExecute OnClick = actCompoundCreateExecute
end end
object MenuItem46: TMenuItem
Action = actRecordCreate
OnClick = actRecordCreateExecute
end
object MenuItem24: TMenuItem object MenuItem24: TMenuItem
Action = actIntfCreate Action = actIntfCreate
OnClick = actIntfCreateExecute OnClick = actIntfCreateExecute
@ -2113,6 +2129,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Action = actCompoundCreate Action = actCompoundCreate
OnClick = actCompoundCreateExecute OnClick = actCompoundCreateExecute
end end
object MenuItem47: TMenuItem
Action = actRecordCreate
OnClick = actRecordCreateExecute
end
object MenuItem44: TMenuItem object MenuItem44: TMenuItem
Action = actEnumCreate Action = actEnumCreate
OnClick = actEnumCreateExecute OnClick = actEnumCreateExecute

View File

@ -22,63 +22,61 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHA' +'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHA'
+'RSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Co' +'RSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Co'
+'urier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'Popu' +'urier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'Popu'
+'pMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions' +'pMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.DigitCou'
+'.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gut' +'nt'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter'
+'ter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2 +'.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1
+#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'Sh' +#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7
+'ortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8 +'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7
+'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'S' +'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1
+'hortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8 +#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7
+'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'S' +'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7
+'hortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'S' +'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7
+'hortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8 +'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7
+'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10 +'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8 +'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8 +'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#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'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8 +'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8 +'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8 +'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8 +'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0 +'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3 +#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman' +'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co' +'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@' +'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short' +#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3 +'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm' +#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7 +'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@' +'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3 +'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC' +#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8 +#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-' +'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3 +'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman' +#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C' +'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1 +#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@' +'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3 +'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu' +#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh' +'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1 +'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3 +'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma' +#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
,'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7 ,'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1 +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T'
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnC' +'TabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#12'ClientHeight'#3'='#2#11'Client'
+'hange'#13#0#0#0#9'TTabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#12'ClientHeigh' +'Width'#3#245#1#0#8'TSynEdit'#7'srcWSDL'#6'Height'#3'='#2#5'Width'#3#245#1#5
+'t'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#7'srcWSDL'#6'Height'#3'='#2 +'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7
+#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET' +'clBlack'#11'Font.Height'#2#233#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7
+#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#233#9'Font.Name'#6#7'Courier' +'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23
+#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2' +'BookMarkOptions.Xoffset'#2'6'#22'Gutter.ShowLineNumbers'#9#23'Gutter.CodeFo'
+#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'6'#24'BookMarkOptions.OnChang' +'ldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Com'
+'e'#13#22'Gutter.ShowLineNumbers'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFol' +'mand'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comm'
+'dingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Comm' +'and'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Co'
+'and'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comma' +'mmand'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7
+'nd'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Com'
+'mand'#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'C' +'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'C'
+'ommand'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'C' +'ommand'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'C'
+'ommand'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7 +'ommand'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7
@ -117,23 +115,126 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0 +'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 +#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' +'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' +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#12 +'TabSheet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#12'ClientHeight'#3'='#2#11'Clie'
+'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#8'srcProxy'#6'He' +'ntWidth'#3#245#1#0#8'TSynEdit'#8'srcProxy'#6'Height'#3'='#2#5'Width'#3#245#1
+'ight'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12 +#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7
+'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name' +#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7
+#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10 +#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0
+'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.Digi' +#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions.OnChange'#13#17'Gutter.'
+'tCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gu' +'DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15
+'tter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes' +'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'S'
+#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0 +'ynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Comman'
+#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0 +'d'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Co'
+#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@' +'mmand'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Com'
,#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0 +'mand'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'C'
+#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1 +'ommand'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'C'
+#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1 ,'ommand'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'C'
+#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1 +'ommand'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7
+#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#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'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#12'ClientHeight'#3
+'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#6'srcImp'#6'Height'#3'='#2#5'Wid'
+'th'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'F'
+'ont.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#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'#8'tsBinder'#7'Caption'#6#7'&Binder'#12'ClientHeight'#3
+'='#2#11'ClientWidth'#3#245#1#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.ShowLineNumber'
+'s'#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFold'
+'ingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Comma'
+'nd'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comman'
+'d'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Comm'
+'and'#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'C'
+'ommand'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'C'
+'ommand'#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#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' +'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 +'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
@ -156,7 +257,7 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm' +#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 +'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 +'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' ,#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' +'@'#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' +#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 +'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
@ -167,198 +268,103 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0 +'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 +#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' +'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' +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
+'TabSheet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#12'ClientHeigh' +'edColor.OnChange'#13#0#0#0#9'TTabSheet'#5'tsLog'#7'Caption'#6#4'&Log'#12'Cl'
+'t'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#6'srcImp'#6'Height'#3'='#2#5 +'ientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#5'TMemo'#6'mmoLog'#6'Height'#3
+'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10 +'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#13'Lines.Strings'#1#6#0#0#10'S'
+'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10 +'crollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#0#0#9'TSplitter'#9'Splitter1'#4
+'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8 +'Left'#3':'#1#6'Height'#3'Y'#2#5'Width'#2#8#5'Color'#7#7'clBlack'#11'ParentC'
+'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.DigitCount'#2#5#22 +'olor'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuI'
+'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldin' +'tem'#9'MenuItem1'#7'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Ac'
+'gWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command' +'tion'#7#10'actNewFile'#7'OnClick'#7#17'actNewFileExecute'#0#0#9'TMenuItem'#9
+#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3 +'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#11'a'
+#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2 +'ctOpenFile'#7'OnClick'#7#18'actOpenFileExecute'#0#0#9'TMenuItem'#9'MenuItem'
+'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command' +'3'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9'TMenuIt'
+#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2 +'em'#9'MenuItem7'#6'Action'#7#7'actSave'#7'OnClick'#7#14'actSaveExecute'#0#0
+#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2 +#9'TMenuItem'#10'MenuItem32'#6'Action'#7#9'actSaveAs'#7'OnClick'#7#16'actSav'
+#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6 +'eAsExecute'#0#0#9'TMenuItem'#10'MenuItem17'#7'Caption'#6#1'-'#0#0#9'TMenuIt'
+#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2 +'em'#9'MenuItem4'#6'Action'#7#7'actExit'#7'OnClick'#7#14'actExitExecute'#0#0
+#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2 +#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5'&View'#0#9'TMenuItem'#10'MenuI'
+#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2 +'tem15'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecute'
+#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13 +#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuI'
+#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8 +'tem30'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8 +#0#9'TMenuItem'#10'MenuItem31'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8 +#22'actFullCollapseExecute'#0#0#0#9'TMenuItem'#10'MenuItem10'#7'Caption'#6#8
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8 +'&Edition'#0#9'TMenuItem'#10'MenuItem11'#6'Action'#7#13'actEnumCreate'#7'OnC'
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0 +'lick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem23'#6'Action'#7
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3 +#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExecute'#0#0#9'TMenu'
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman' +'Item'#10'MenuItem48'#6'Action'#7#15'actRecordCreate'#7'OnClick'#7#22'actRec'
,'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co' +'ordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem25'#6'Action'#7#13'actIntfCre'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@' +'ate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem35'#6
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short' +'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0#0#9'T'
+'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3 +'MenuItem'#10'MenuItem36'#6'Action'#7#18'actTypeALiasCreate'#7'OnClick'#7#25
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm' +'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuItem12'#7'Caption'#6#1'-'
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7 +#0#0#9'TMenuItem'#10'MenuItem13'#6'Action'#7#15'actUpdateObject'#7'Caption'#6
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@' +#13'Update Object'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3 +#10'MenuItem34'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actDeleteExecute'#0
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC' +#0#0#9'TMenuItem'#9'MenuItem6'#6'Action'#7#8'actAbout'#7'Caption'#6#6'&About'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8 +#7'OnClick'#7#15'actAboutExecute'#0#0#0#11'TActionList'#2'AL'#4'left'#3'X'#1
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-' +#3'top'#2'8'#0#7'TAction'#11'actOpenFile'#7'Caption'#6#9'Open File'#18'Disab'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3 +'leIfNoHandler'#9#9'OnExecute'#7#18'actOpenFileExecute'#0#0#7'TAction'#7'act'
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman' +'Exit'#7'Caption'#6#4'Exit'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actEx'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C' +'itExecute'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save generated files'
+'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1 +' ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExportExecute'#8'OnUpda'
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@' +'te'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'About'
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3 +#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TAction'#9
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu' +'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfNoHandler'#9#9'OnExecut'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh' +'e'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1 +#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#18'DisableIfNoHandler'
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3 +#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAction'#15'actUpdateObject'
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma' +#7'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actUpdate'
+'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7 +'ObjectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'ac'
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1 +'tRefreshView'#7'Caption'#6#14'&Refresh Views'#18'DisableIfNoHandler'#9#9'On'
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#8 +'Execute'#7#21'actRefreshViewExecute'#0#0#7'TAction'#10'actNewFile'#7'Captio'
+'tsBinder'#7'Caption'#6#7'&Binder'#12'ClientHeight'#3'='#2#11'ClientWidth'#3 +'n'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actNewFileExecu'
+#245#1#0#8'TSynEdit'#9'srcBinder'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align' +'te'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6#17'Create Class Type'
+#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlac' ,#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actCompoundCreateExecute'#0#0#7
+'k'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFix' +'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Interface'#18'DisableIfNo'
+'ed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'Book' +'Handler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAction'#13'actFul'
+'MarkOptions.Xoffset'#2'Q'#15'Gutter.AutoSize'#9#17'Gutter.DigitCount'#2#5#22 +'lExpand'#7'Caption'#6#11'Full expand'#18'DisableIfNoHandler'#9#9'OnExecute'
+'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldin' +#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFullCollapse'#7'Caption'#6
+'gWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command' +#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actFullCollaps'
+#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3 +'eExecute'#0#0#7'TAction'#7'actSave'#7'Caption'#6#4'Save'#18'DisableIfNoHand'
+#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2 +'ler'#9#9'OnExecute'#7#14'actSaveExecute'#0#0#7'TAction'#9'actDelete'#7'Capt'
+'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command' +'ion'#6#6'Delete'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actDeleteExecut'
+#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2 +'e'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actArrayCreate'
+#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2 +#7'Caption'#6#12'Create Array'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'ac'
+#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6 +'tArrayCreateExecute'#0#0#7'TAction'#18'actTypeALiasCreate'#7'Caption'#6#17
+#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2 +'Create Type ALias'#18'DisableIfNoHandler'#9#9'OnExecute'#7#25'actTypeALiasC'
+#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2 +'reateExecute'#0#0#7'TAction'#15'actRecordCreate'#7'Caption'#6#13'Create Rec'
+#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2 +'ord'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actRecordCreateExecute'#0#0
+#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13 +#0#11'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un fichier existant'#6'Filter'
+#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8 +#6'3WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.pas'#11'FilterIndex'#2#0
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8 +#10'InitialDir'#6#2'.\'#7'Options'#11#15'ofPathMustExist'#15'ofFileMustExist'
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8 +#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#153#1#3'top'#2'X'#0#0#10'TS'
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8 +'ynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlu'
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0 +'e'#18'CommentAttri.Style'#11#6'fsBold'#0#22'StringAttri.Foreground'#7#8'clM'
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3 +'aroon'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'DirectiveAttri.Foreground'#7
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman' +#7'clGreen'#20'DirectiveAttri.Style'#11#6'fsBold'#0#14'NestedComments'#9#4'l'
+'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co' +'eft'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2'SD'#5'Title'#6#27'Enregistre'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@' +'r le fichier sous'#10'DefaultExt'#6#5'.WSDL'#6'Filter'#6#25'WDSL files(*.WS'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short' +'DL)|*.WSDL'#11'FilterIndex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEnab'
+'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3 +'leSizing'#12'ofViewDetail'#0#4'left'#3#242#1#3'top'#3#176#0#0#0#10'TPopupMe'
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm' +'nu'#10'PopupMenu1'#4'left'#3#152#0#3'top'#3#152#0#0#9'TMenuItem'#10'MenuIte'
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7 +'m28'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0#0
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@' +#9'TMenuItem'#10'MenuItem27'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7#22
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3 +'actFullCollapseExecute'#0#0#9'TMenuItem'#10'MenuItem39'#6'Action'#7#14'actR'
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC' +'efreshView'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'Menu'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8 +'Item26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actE'
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-' +'numCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuIt'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3 +'em21'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateEx'
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman' +'ecute'#0#0#9'TMenuItem'#10'MenuItem46'#6'Action'#7#15'actRecordCreate'#7'On'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C' +'Click'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem24'#6'Actio'
,'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1 +'n'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuIte'
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@' +'m'#10'MenuItem37'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCr'
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3 +'eateExecute'#0#0#9'TMenuItem'#10'MenuItem38'#6'Action'#7#18'actTypeALiasCre'
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu' +'ate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuIte'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh' +'m22'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpda'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1 +'teObject'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'#10'MenuI'
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3 +'tem33'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actDeleteExecute'#0#0#0#10
+'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'#5
+'tsLog'#7'Caption'#6#4'&Log'#12'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1
+#0#5'TMemo'#6'mmoLog'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClien'
+'t'#13'Lines.Strings'#1#6#0#0#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0
+#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3':'#1#6'Height'#3'Y'#2#5'Width'#2#8
+#5'Color'#7#7'clBlack'#11'ParentColor'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'lef'
+'t'#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'actNew'
+'FileExecute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuIte'
+'m'#9'MenuItem5'#6'Action'#7#11'actOpenFile'#7'OnClick'#7#18'actOpenFileExec'
+'ute'#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'On'
+'Click'#7#14'actSaveExecute'#0#0#9'TMenuItem'#10'MenuItem32'#6'Action'#7#9'a'
+'ctSaveAs'#7'OnClick'#7#16'actSaveAsExecute'#0#0#9'TMenuItem'#10'MenuItem17'
+#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#7'actExit'#7'On'
+'Click'#7#14'actExitExecute'#0#0#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5
+'&View'#0#9'TMenuItem'#10'MenuItem15'#6'Action'#7#14'actRefreshView'#7'OnCli'
+'ck'#7#21'actRefreshViewExecute'#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'MenuItem25'#6'Action'#7#13'actIntf'
+'Create'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem3'
+'5'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0#0
+#9'TMenuItem'#10'MenuItem36'#6'Action'#7#18'actTypeALiasCreate'#7'OnClick'#7
+#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuItem12'#7'Caption'#6#1
+'-'#0#0#9'TMenuItem'#10'MenuItem13'#6'Action'#7#15'actUpdateObject'#7'Captio'
+'n'#6#13'Update Object'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuI'
+'tem'#10'MenuItem34'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actDeleteExecu'
+'te'#0#0#0#9'TMenuItem'#9'MenuItem6'#6'Action'#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'actOpenFile'#7'Caption'#6#9'Open File'#18
+'DisableIfNoHandler'#9#9'OnExecute'#7#18'actOpenFileExecute'#0#0#7'TAction'#7
+'actExit'#7'Caption'#6#4'Exit'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'ac'
+'tExitExecute'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save generated fi'
+'les ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExportExecute'#8'OnU'
+'pdate'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'Abou'
+'t'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TActio'
+'n'#9'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfNoHandler'#9#9'OnE'
+'xecute'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAct'
+'ion'#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#18'DisableIfNoHa'
+'ndler'#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAction'#15'actUpdat'
+'eObject'#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'#0#0#7'TAction'#10'actNewFile'
+#7'Caption'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actNewF'
+'ileExecute'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6#20'Create Com'
+'pound Type'#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actCompoundCreateExe'
+'cute'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Interface'#18
+'DisableIfNoHandler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAction'
,#13'actFullExpand'#7'Caption'#6#11'Full expand'#18'DisableIfNoHandler'#9#9'O'
+'nExecute'#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFullCollapse'#7'C'
+'aption'#6#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actF'
+'ullCollapseExecute'#0#0#7'TAction'#7'actSave'#7'Caption'#6#4'Save'#18'Disab'
+'leIfNoHandler'#9#9'OnExecute'#7#14'actSaveExecute'#0#0#7'TAction'#9'actDele'
+'te'#7'Caption'#6#6'Delete'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actDe'
+'leteExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actA'
+'rrayCreate'#7'Caption'#6#12'Create Array'#18'DisableIfNoHandler'#9#9'OnExec'
+'ute'#7#21'actArrayCreateExecute'#0#0#7'TAction'#18'actTypeALiasCreate'#7'Ca'
+'ption'#6#17'Create Type ALias'#18'DisableIfNoHandler'#9#9'OnExecute'#7#25'a'
+'ctTypeALiasCreateExecute'#0#0#0#11'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir '
+'un fichier existant'#6'Filter'#6'3WDSL files(*.WSDL)|*.WSDL|Pascal file (*.'
+'pas)|*.pas'#11'FilterIndex'#2#0#10'InitialDir'#6#2'.\'#7'Options'#11#15'ofP'
+'athMustExist'#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'l'
+'eft'#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'#5'Title'#6#27'Enregistrer le fichier sous'#10'DefaultExt'#6#5'.WS'
+'DL'#6'Filter'#6#25'WDSL files(*.WSDL)|*.WSDL'#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'PopupMenu1'#4'left'#3#152#0#3'top'#3
+#152#0#0#9'TMenuItem'#10'MenuItem28'#6'Action'#7#13'actFullExpand'#7'OnClick'
+#7#20'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem27'#6'Action'#7#15'a'
+'ctFullCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#9'TMenuItem'#10
+'MenuItem39'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewEx'
+'ecute'#0#0#9'TMenuItem'#10'MenuItem26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9
+'MenuItem8'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecu'
+'te'#0#0#9'TMenuItem'#10'MenuItem21'#6'Action'#7#17'actCompoundCreate'#7'OnC'
+'lick'#7#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem24'#6'Acti'
+'on'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuIt'
+'em'#10'MenuItem37'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayC'
+'reateExecute'#0#0#9'TMenuItem'#10'MenuItem38'#6'Action'#7#18'actTypeALiasCr'
+'eate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuIt'
+'em22'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpd'
+'ateObject'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'#10'Menu'
+'Item33'#6'Action'#7#9'actDelete'#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 +'TPopupMenu'#10'PopupMenu2'#4'left'#3#16#2#3'top'#3#235#0#0#9'TMenuItem'#10
+'MenuItem18'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewEx' +'MenuItem18'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewEx'
+'ecute'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10 +'ecute'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10
@ -366,12 +372,14 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'TMenuItem'#10'MenuItem40'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem41' +'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 +#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 +'TMenuItem'#10'MenuItem45'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24
+'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem44'#6'Action'#7#13'ac' +'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem47'#6'Action'#7#15'ac'
+'tEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'Menu' +'tRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10
+'Item43'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute' +'MenuItem44'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExec'
+#0#0#9'TMenuItem'#10'MenuItem42'#6'Action'#7#18'actTypeALiasCreate'#7'OnClic' +'ute'#0#0#9'TMenuItem'#10'MenuItem43'#6'Action'#7#13'actIntfCreate'#7'OnClic'
+'k'#7#25'actTypeALiasCreateExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'D' +'k'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem42'#6'Action'#7#18
+'efaultFilter'#6#30'Documents WSDL (*.wsdl)|*.wsdl'#7'Enabled'#8#23'ElementA' +'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#0#10'TSy'
+'ttri.Foreground'#7#6'clNavy'#30'AttributeValueAttri.Foreground'#7#8'clPurpl' +'nXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6#30'Documents WSDL (*.wsdl)|*.ws'
+'e'#16'WantBracesParsed'#8#4'left'#3#210#1#3'top'#3#252#0#0#0#0 +'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'
+#3#252#0#0#0#0
]); ]);

View File

@ -39,6 +39,7 @@ type
actFullCollapse: TAction; actFullCollapse: TAction;
actDelete : TAction; actDelete : TAction;
actArrayCreate : TAction; actArrayCreate : TAction;
actRecordCreate : TAction;
actTypeALiasCreate : TAction; actTypeALiasCreate : TAction;
actSave : TAction; actSave : TAction;
actNewFile: TAction; actNewFile: TAction;
@ -84,6 +85,9 @@ type
MenuItem43 : TMenuItem; MenuItem43 : TMenuItem;
MenuItem44 : TMenuItem; MenuItem44 : TMenuItem;
MenuItem45 : TMenuItem; MenuItem45 : TMenuItem;
MenuItem46 : TMenuItem;
MenuItem47 : TMenuItem;
MenuItem48 : TMenuItem;
MenuItem5: TMenuItem; MenuItem5: TMenuItem;
MenuItem6: TMenuItem; MenuItem6: TMenuItem;
MenuItem7 : TMenuItem; MenuItem7 : TMenuItem;
@ -130,6 +134,7 @@ type
procedure actIntfCreateExecute(Sender: TObject); procedure actIntfCreateExecute(Sender: TObject);
procedure actNewFileExecute(Sender: TObject); procedure actNewFileExecute(Sender: TObject);
procedure actOpenFileExecute(Sender: TObject); procedure actOpenFileExecute(Sender: TObject);
procedure actRecordCreateExecute(Sender : TObject);
procedure actRefreshViewExecute(Sender: TObject); procedure actRefreshViewExecute(Sender: TObject);
procedure actSaveAsExecute(Sender: TObject); procedure actSaveAsExecute(Sender: TObject);
procedure actSaveExecute (Sender : TObject ); procedure actSaveExecute (Sender : TObject );
@ -405,6 +410,16 @@ begin
end; end;
end; end;
procedure TfWstTypeLibraryEdit.actRecordCreateExecute(Sender : TObject);
var
e : TPasRecordType;
begin
e := CreateRecordObject(FSymbolTable);
if Assigned(e) then begin
FindPainter(e).Paint(FSymbolTable,e,GetTypeNode());
end;
end;
procedure TfWstTypeLibraryEdit.actRefreshViewExecute(Sender: TObject); procedure TfWstTypeLibraryEdit.actRefreshViewExecute(Sender: TObject);
begin begin
RenderSymbols(); RenderSymbols();
@ -571,7 +586,7 @@ procedure TfWstTypeLibraryEdit.actCompoundCreateExecute(Sender: TObject);
var var
e : TPasClassType; e : TPasClassType;
begin begin
e := CreateCompoundObject(FSymbolTable); e := CreateClassObject(FSymbolTable);
if Assigned(e) then begin if Assigned(e) then begin
FindPainter(e).Paint(FSymbolTable,e,GetTypeNode()); FindPainter(e).Paint(FSymbolTable,e,GetTypeNode());
end; end;

View File

@ -235,6 +235,19 @@ type
class function CanHandle(AObj : TObject):Boolean;override; class function CanHandle(AObj : TObject):Boolean;override;
end; end;
{ TRecordTypeDefinitionPainter }
TRecordTypeDefinitionPainter = class(TTypeSymbolPainter)
protected
function Paint(
AContainer : TwstPasTreeContainer;
AObj : TPasElement;
AParent : TTreeNode
):TTreeNode;override;
public
class function CanHandle(AObj : TObject):Boolean;override;
end;
{ TArrayTypeDefinitionPainter } { TArrayTypeDefinitionPainter }
TArrayTypeDefinitionPainter = class(TTypeSymbolPainter) TArrayTypeDefinitionPainter = class(TTypeSymbolPainter)
@ -294,6 +307,38 @@ type
class function CanHandle(AObj : TObject):Boolean;override; class function CanHandle(AObj : TObject):Boolean;override;
end; end;
{ TRecordTypeDefinitionPainter }
function TRecordTypeDefinitionPainter.Paint(
AContainer : TwstPasTreeContainer;
AObj: TPasElement;
AParent: TTreeNode
): TTreeNode;
var
locObj : TPasRecordType;
locProp : TPasVariable;
i : Integer;
s : string;
begin
locObj := AObj as TPasRecordType;
Result := inherited Paint(AContainer,locObj, AParent);
for i := 0 to Pred(locObj.Members.Count) do begin
if TPasElement(locObj.Members[i]).InheritsFrom(TPasVariable) then begin
locProp := TPasVariable(locObj.Members[i]);
s := Format('%s : %s',[AContainer.GetExternalName(locProp),AContainer.GetExternalName(locProp.VarType)]);
if AContainer.IsAttributeProperty(locProp) then begin
s := s + ' ( Attribute )';
end;
AddChildNode(Result,s);
end;
end;
end;
class function TRecordTypeDefinitionPainter.CanHandle(AObj : TObject) : Boolean;
begin
Result := inherited CanHandle(AObj) and AObj.InheritsFrom(TPasRecordType);
end;
{ TArrayTypeDefinitionPainter } { TArrayTypeDefinitionPainter }
class function TArrayTypeDefinitionPainter.CanHandle(AObj : TObject) : Boolean; class function TArrayTypeDefinitionPainter.CanHandle(AObj : TObject) : Boolean;
@ -723,6 +768,7 @@ initialization
FPainterRegistryInst.RegisterHandler(TPasNativeSimpleTypePainter); FPainterRegistryInst.RegisterHandler(TPasNativeSimpleTypePainter);
FPainterRegistryInst.RegisterHandler(TBindingPainter); FPainterRegistryInst.RegisterHandler(TBindingPainter);
FPainterRegistryInst.RegisterHandler(TArrayTypeDefinitionPainter); FPainterRegistryInst.RegisterHandler(TArrayTypeDefinitionPainter);
FPainterRegistryInst.RegisterHandler(TRecordTypeDefinitionPainter);
finalization finalization
FreeAndNil(FPainterRegistryInst); FreeAndNil(FPainterRegistryInst);

View File

@ -102,6 +102,18 @@ type
class function CanHandle(ASymbol : TObject) : Boolean;override; class function CanHandle(ASymbol : TObject) : Boolean;override;
end; end;
{ TPasRecordType_TypeHandler }
TPasRecordType_TypeHandler = class(TTypeDefinition_TypeHandler)
protected
procedure Generate(
AContainer : TwstPasTreeContainer;
const ASymbol : TPasElement;
AWsdlDocument : TDOMDocument
);override;
class function CanHandle(ASymbol : TObject) : Boolean;override;
end;
{ TBaseArrayRemotable_TypeHandler } { TBaseArrayRemotable_TypeHandler }
TBaseArrayRemotable_TypeHandler = class(TTypeDefinition_TypeHandler) TBaseArrayRemotable_TypeHandler = class(TTypeDefinition_TypeHandler)
@ -158,6 +170,7 @@ const
sNAME = 'name'; sNAME = 'name';
sNAME_SPACE = 'namespace'; sNAME_SPACE = 'namespace';
sPORT_TYPE = 'portType'; sPORT_TYPE = 'portType';
sRECORD = 'record';
sRESTRICTION = 'restriction'; sRESTRICTION = 'restriction';
sSEQUENCE = 'sequence'; sSEQUENCE = 'sequence';
sSERVICE = 'service'; sSERVICE = 'service';
@ -717,9 +730,9 @@ begin
if not AContainer.IsAttributeProperty(p) then begin if not AContainer.IsAttributeProperty(p) then begin
if ( typeCategory = tcSimpleContent ) then begin if ( typeCategory = tcSimpleContent ) then begin
raise EWsdlGeneratorException.CreateFmt('Invalid type definition, a simple type cannot have "not attribute" properties : "%s"',[AContainer.GetExternalName(ASymbol)]); raise EWsdlGeneratorException.CreateFmt('Invalid type definition, a simple type cannot have "not attribute" properties : "%s"',[AContainer.GetExternalName(ASymbol)]);
hasSequence := True;
end; end;
end; end;
hasSequence := True;
end; end;
end; end;
if hasSequence then begin if hasSequence then begin
@ -924,6 +937,7 @@ begin
r := GetWsdlTypeHandlerRegistry(); r := GetWsdlTypeHandlerRegistry();
r.Register(TEnumTypeHandler); r.Register(TEnumTypeHandler);
r.Register(TClassTypeDefinition_TypeHandler); r.Register(TClassTypeDefinition_TypeHandler);
r.Register(TPasRecordType_TypeHandler);
r.Register(TBaseArrayRemotable_TypeHandler); r.Register(TBaseArrayRemotable_TypeHandler);
r.Register(TTypeAliasDefinition_TypeHandler); r.Register(TTypeAliasDefinition_TypeHandler);
end; end;
@ -970,6 +984,104 @@ begin
Result := Assigned(ASymbol) and ASymbol.InheritsFrom(TPasAliasType); Result := Assigned(ASymbol) and ASymbol.InheritsFrom(TPasAliasType);
end; end;
{ TPasRecordType_TypeHandler }
procedure TPasRecordType_TypeHandler.Generate(
AContainer : TwstPasTreeContainer;
const ASymbol : TPasElement;
AWsdlDocument : TDOMDocument
);
var
cplxNode, docNode : TDOMElement;
procedure CreateDocNode();
begin
if ( docNode = nil ) then begin
docNode := CreateElement(sDOCUMENT,cplxNode,AWsdlDocument);
end;
end;
var
typItm : TPasRecordType;
propTypItm : TPasType;
s, prop_ns_shortName : string;
defTypesNode, defSchemaNode, sqcNode, propNode : TDOMElement;
i : Integer;
p : TPasVariable;
hasSequence : Boolean;
begin
inherited;
docNode := nil;
typItm := ASymbol as TPasRecordType;
if Assigned(typItm) then begin
GetNameSpaceShortName(AContainer.GetExternalName(AContainer.CurrentModule) ,AWsdlDocument);
defTypesNode := AWsdlDocument.DocumentElement.FindNode(sWSDL_TYPES) as TDOMElement;
Assert(Assigned(defTypesNode));
defSchemaNode := defTypesNode.FirstChild as TDOMElement;
s := Format('%s:%s',[sXSD,sCOMPLEX_TYPE]);
cplxNode := CreateElement(s,defSchemaNode,AWsdlDocument);
cplxNode.SetAttribute(sNAME, AContainer.GetExternalName(typItm)) ;
CreateDocNode();
CreateElement(sCUSTOM_ATTRIBUTE,docNode,AWsdlDocument).SetAttribute(sRECORD,'true');
hasSequence := False;
for i := 0 to Pred(typItm.Members.Count) do begin
if TPasElement(typItm.Members[i]).InheritsFrom(TPasVariable) then begin
p := TPasVariable(typItm.Members[i]);
if not AContainer.IsAttributeProperty(p) then begin
hasSequence := True;
Break;
end;
end;
end;
if hasSequence then begin
s := Format('%s:%s',[sXSD,sSEQUENCE]);
sqcNode := CreateElement(s,cplxNode,AWsdlDocument);
end else begin
sqcNode := nil;
end;
for i := 0 to Pred(typItm.Members.Count) do begin
if TPasElement(typItm.Members[i]).InheritsFrom(TPasVariable) then begin
p := TPasVariable(typItm.Members[i]);
if AContainer.IsAttributeProperty(p) then begin
s := Format('%s:%s',[sXSD,sATTRIBUTE]);
propNode := CreateElement(s,cplxNode,AWsdlDocument);
end else begin
s := Format('%s:%s',[sXSD,sELEMENT]);
propNode := CreateElement(s,sqcNode,AWsdlDocument);
end;
propNode.SetAttribute(sNAME,AContainer.GetExternalName(p));
propTypItm := p.VarType;
if Assigned(propTypItm) then begin
prop_ns_shortName := GetNameSpaceShortName(GetTypeNameSpace(AContainer,propTypItm),AWsdlDocument);
propNode.SetAttribute(sTYPE,Format('%s:%s',[prop_ns_shortName,AContainer.GetExternalName(propTypItm)]));
{if AContainer.IsAttributeProperty(p) then begin
if AnsiSameText('Has',Copy(p.StoredAccessorName,1,3)) then
propNode.SetAttribute(sATTRIBUTE,'optional')
else
propNode.SetAttribute(sATTRIBUTE,'required');
end else begin
if AnsiSameText('Has',Copy(p.StoredAccessorName,1,3)) then
propNode.SetAttribute(sMIN_OCCURS,'0')
else
propNode.SetAttribute(sMIN_OCCURS,'1');
propNode.SetAttribute(sMAX_OCCURS,'1');
end;}
end;
end;
end;
end;
end;
class function TPasRecordType_TypeHandler.CanHandle(ASymbol : TObject) : Boolean;
begin
Result := inherited CanHandle(ASymbol) and ASymbol.InheritsFrom(TPasRecordType);
end;
initialization initialization
WsdlTypeHandlerRegistryInst := TWsdlTypeHandlerRegistry.Create() as IWsdlTypeHandlerRegistry; WsdlTypeHandlerRegistryInst := TWsdlTypeHandlerRegistry.Create() as IWsdlTypeHandlerRegistry;
RegisterFondamentalTypes(); RegisterFondamentalTypes();

View File

@ -2116,6 +2116,22 @@ var
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]); WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
end; end;
procedure WriteAttributeProperties();
var
itm : TPasVariable;
k, c : PtrInt;
offsetLine, typeLine : string;
begin
c := ASymbol.Members.Count;
for k := 0 to Pred(c) do begin
itm := TPasVariable(ASymbol.Members[k]);
if SymbolTable.IsAttributeProperty(itm) then begin
Indent();
WriteLn('RegisterAttributeProperty(TypeInfo(%s),%s);',[ASymbol.Name,QuotedStr(itm.Name)]);
end;
end;
end;
var var
s : string; s : string;
begin begin
@ -2148,6 +2164,7 @@ begin
WriteLn('{$IFDEF %s}',[sRECORD_RTTI_DEFINE]); WriteLn('{$IFDEF %s}',[sRECORD_RTTI_DEFINE]);
Indent(); WriteLn(s,[ASymbol.Name,Format('__%s_TYPEINFO_FUNC__()',[ASymbol.Name]),ASymbol.Name]); Indent(); WriteLn(s,[ASymbol.Name,Format('__%s_TYPEINFO_FUNC__()',[ASymbol.Name]),ASymbol.Name]);
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]); WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
WriteAttributeProperties();
SetCurrentStream(FDecStream); SetCurrentStream(FDecStream);
except except
on e : Exception do on e : Exception do

View File

@ -129,8 +129,8 @@ type
procedure RegisterExternalAlias(AObject : TPasElement; const AExternalName : String); procedure RegisterExternalAlias(AObject : TPasElement; const AExternalName : String);
function SameName(AObject : TPasElement; const AName : string) : Boolean; function SameName(AObject : TPasElement; const AName : string) : Boolean;
function GetExternalName(AObject : TPasElement) : string; function GetExternalName(AObject : TPasElement) : string;
function IsAttributeProperty(AObject : TPasProperty) : Boolean; function IsAttributeProperty(AObject : TPasVariable) : Boolean;
procedure SetPropertyAsAttribute(AObject : TPasProperty; const AValue : Boolean); procedure SetPropertyAsAttribute(AObject : TPasVariable; const AValue : Boolean);
function IsInitNeed(AType: TPasType): Boolean; function IsInitNeed(AType: TPasType): Boolean;
function IsOfType(AType: TPasType; AClass: TClass): Boolean; function IsOfType(AType: TPasType; AClass: TClass): Boolean;
@ -161,7 +161,8 @@ type
const AParamName : string; const AParamName : string;
const AStartPos : Integer = 0 const AStartPos : Integer = 0
) : TPasArgument; ) : TPasArgument;
function FindMember(AClass : TPasClassType; const AName : string) : TPasElement ; function FindMember(AClass : TPasClassType; const AName : string) : TPasElement ; overload;
function FindMember(AClass : TPasRecordType; const AName : string) : TPasElement ; overload;
function GetElementCount(AList : TList; AElementClass : TPTreeElement):Integer ; function GetElementCount(AList : TList; AElementClass : TPTreeElement):Integer ;
function GetUltimeType(AType : TPasType) : TPasType; function GetUltimeType(AType : TPasType) : TPasType;
@ -269,6 +270,7 @@ var
begin begin
Result := TPasModule(AContainer.CreateElement(TPasModule,'base_service_intf',AContainer.Package,visPublic,'',0)); Result := TPasModule(AContainer.CreateElement(TPasModule,'base_service_intf',AContainer.Package,visPublic,'',0));
try try
AContainer.Package.Modules.Add(Result);
AContainer.RegisterExternalAlias(Result,sXSD_NS); AContainer.RegisterExternalAlias(Result,sXSD_NS);
Result.InterfaceSection := TPasSection(AContainer.CreateElement(TPasSection,'',Result,visDefault,'',0)); Result.InterfaceSection := TPasSection(AContainer.CreateElement(TPasSection,'',Result,visDefault,'',0));
AddSystemSymbol(Result,AContainer); AddSystemSymbol(Result,AContainer);
@ -380,22 +382,36 @@ begin
end; end;
end; end;
function FindMember(AClass : TPasClassType; const AName : string) : TPasElement ; function InternalFindMember(AMemberList : TList; const AName : string) : TPasElement ;
var var
memberList : TList;
i : Integer; i : Integer;
begin begin
Result := nil; Result := nil;
if ( AClass <> nil ) then begin if ( AMemberList <> nil ) then begin
memberList := AClass.Members; for i := 0 to Pred(AMemberList.Count) do begin
for i := 0 to Pred(memberList.Count) do begin if AnsiSameText(AName,TPasElement(AMemberList[i]).Name) then begin
if AnsiSameText(AName,TPasElement(memberList[i]).Name) then begin Result := TPasElement(AMemberList[i]);
Result := TPasElement(memberList[i]);
end; end;
end; end;
end; end;
end; end;
function FindMember(AClass : TPasClassType; const AName : string) : TPasElement ;
begin
Result := nil;
if ( AClass <> nil ) then begin
Result := InternalFindMember(AClass.Members,AName);
end;
end;
function FindMember(AClass : TPasRecordType; const AName : string) : TPasElement ;
begin
Result := nil;
if ( AClass <> nil ) then begin
Result := InternalFindMember(AClass.Members,AName);
end;
end;
function MakeInternalSymbolNameFrom(const AName : string) : string ; function MakeInternalSymbolNameFrom(const AName : string) : string ;
begin begin
Result := ExtractIdentifier(AName); Result := ExtractIdentifier(AName);
@ -694,12 +710,12 @@ begin
end; end;
end; end;
function TwstPasTreeContainer.IsAttributeProperty(AObject: TPasProperty): Boolean; function TwstPasTreeContainer.IsAttributeProperty(AObject: TPasVariable): Boolean;
begin begin
Result := AnsiSameText(Properties.GetValue(AObject,sATTRIBUTE),'True'); Result := AnsiSameText(Properties.GetValue(AObject,sATTRIBUTE),'True');
end; end;
procedure TwstPasTreeContainer.SetPropertyAsAttribute(AObject: TPasProperty; const AValue: Boolean); procedure TwstPasTreeContainer.SetPropertyAsAttribute(AObject: TPasVariable; const AValue: Boolean);
var var
s : string; s : string;
begin begin

View File

@ -12,7 +12,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value=".\"/> <IconPath Value=".\"/>
<TargetFileExt Value=""/> <TargetFileExt Value=""/>
<ActiveEditorIndexAtStart Value="1"/> <ActiveEditorIndexAtStart Value="2"/>
</General> </General>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
@ -33,7 +33,7 @@
<PackageName Value="FCL"/> <PackageName Value="FCL"/>
</Item1> </Item1>
</RequiredPackages> </RequiredPackages>
<Units Count="63"> <Units Count="64">
<Unit0> <Unit0>
<Filename Value="ws_helper.pas"/> <Filename Value="ws_helper.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
@ -50,7 +50,7 @@
<UnitName Value="ws_parser"/> <UnitName Value="ws_parser"/>
<CursorPos X="1" Y="487"/> <CursorPos X="1" Y="487"/>
<TopLine Value="444"/> <TopLine Value="444"/>
<EditorIndex Value="6"/> <EditorIndex Value="7"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
@ -60,7 +60,7 @@
<UnitName Value="generator"/> <UnitName Value="generator"/>
<CursorPos X="21" Y="694"/> <CursorPos X="21" Y="694"/>
<TopLine Value="113"/> <TopLine Value="113"/>
<EditorIndex Value="7"/> <EditorIndex Value="8"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Bookmarks Count="3"> <Bookmarks Count="3">
<Item0 X="69" Y="935" ID="1"/> <Item0 X="69" Y="935" ID="1"/>
@ -75,7 +75,7 @@
<UnitName Value="parserdefs"/> <UnitName Value="parserdefs"/>
<CursorPos X="1" Y="322"/> <CursorPos X="1" Y="322"/>
<TopLine Value="308"/> <TopLine Value="308"/>
<EditorIndex Value="8"/> <EditorIndex Value="9"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="69" Y="1245" ID="0"/> <Item0 X="69" Y="1245" ID="0"/>
@ -88,7 +88,7 @@
<UnitName Value="parserutils"/> <UnitName Value="parserutils"/>
<CursorPos X="35" Y="39"/> <CursorPos X="35" Y="39"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="3"/> <EditorIndex Value="4"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
@ -131,7 +131,7 @@
<Filename Value="metadata_generator.pas"/> <Filename Value="metadata_generator.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="metadata_generator"/> <UnitName Value="metadata_generator"/>
<CursorPos X="1" Y="1"/> <CursorPos X="20" Y="19"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
@ -173,7 +173,7 @@
<UnitName Value="dom_cursors"/> <UnitName Value="dom_cursors"/>
<CursorPos X="1" Y="208"/> <CursorPos X="1" Y="208"/>
<TopLine Value="193"/> <TopLine Value="193"/>
<EditorIndex Value="10"/> <EditorIndex Value="11"/>
<UsageCount Value="103"/> <UsageCount Value="103"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit15> </Unit15>
@ -182,7 +182,7 @@
<UnitName Value="cursor_intf"/> <UnitName Value="cursor_intf"/>
<CursorPos X="32" Y="41"/> <CursorPos X="32" Y="41"/>
<TopLine Value="39"/> <TopLine Value="39"/>
<EditorIndex Value="9"/> <EditorIndex Value="10"/>
<UsageCount Value="105"/> <UsageCount Value="105"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit16> </Unit16>
@ -203,7 +203,7 @@
<UnitName Value="wsdl2pas_imp"/> <UnitName Value="wsdl2pas_imp"/>
<CursorPos X="31" Y="434"/> <CursorPos X="31" Y="434"/>
<TopLine Value="412"/> <TopLine Value="412"/>
<EditorIndex Value="4"/> <EditorIndex Value="5"/>
<UsageCount Value="102"/> <UsageCount Value="102"/>
<Bookmarks Count="2"> <Bookmarks Count="2">
<Item0 X="21" Y="763" ID="3"/> <Item0 X="21" Y="763" ID="3"/>
@ -292,7 +292,7 @@
<UnitName Value="pascal_parser_intf"/> <UnitName Value="pascal_parser_intf"/>
<CursorPos X="84" Y="131"/> <CursorPos X="84" Y="131"/>
<TopLine Value="108"/> <TopLine Value="108"/>
<EditorIndex Value="2"/> <EditorIndex Value="3"/>
<UsageCount Value="155"/> <UsageCount Value="155"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit31> </Unit31>
@ -433,7 +433,7 @@
<UnitName Value="logger_intf"/> <UnitName Value="logger_intf"/>
<CursorPos X="17" Y="1"/> <CursorPos X="17" Y="1"/>
<TopLine Value="31"/> <TopLine Value="31"/>
<EditorIndex Value="5"/> <EditorIndex Value="6"/>
<UsageCount Value="67"/> <UsageCount Value="67"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit52> </Unit52>
@ -499,33 +499,16 @@
<TopLine Value="235"/> <TopLine Value="235"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
</Unit62> </Unit62>
<Unit63>
<Filename Value="..\wst_global.inc"/>
<CursorPos X="20" Y="2"/>
<TopLine Value="1"/>
<EditorIndex Value="2"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit63>
</Units> </Units>
<JumpHistory Count="6" HistoryIndex="5"> <JumpHistory Count="0" HistoryIndex="-1"/>
<Position1>
<Filename Value="metadata_generator.pas"/>
<Caret Line="117" Column="33" TopLine="96"/>
</Position1>
<Position2>
<Filename Value="metadata_generator.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position2>
<Position3>
<Filename Value="metadata_generator.pas"/>
<Caret Line="81" Column="41" TopLine="67"/>
</Position3>
<Position4>
<Filename Value="metadata_generator.pas"/>
<Caret Line="88" Column="44" TopLine="74"/>
</Position4>
<Position5>
<Filename Value="metadata_generator.pas"/>
<Caret Line="99" Column="32" TopLine="85"/>
</Position5>
<Position6>
<Filename Value="metadata_generator.pas"/>
<Caret Line="117" Column="30" TopLine="104"/>
</Position6>
</JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
@ -560,7 +543,7 @@
</Linking> </Linking>
<Other> <Other>
<CustomOptions Value="-Xi <CustomOptions Value="-Xi
-H+
"/> "/>
<CompilerPath Value="$(CompPath)"/> <CompilerPath Value="$(CompPath)"/>
</Other> </Other>

View File

@ -199,6 +199,7 @@ const
s_port : WideString = 'port'; s_port : WideString = 'port';
s_portType : WideString = 'portType'; s_portType : WideString = 'portType';
s_prohibited : WideString = 'prohibited'; s_prohibited : WideString = 'prohibited';
s_record : WideString = 'record';
s_ref : WideString = 'ref'; s_ref : WideString = 'ref';
s_required : WideString = 'required'; s_required : WideString = 'required';
s_restriction : WideString = 'restriction'; s_restriction : WideString = 'restriction';
@ -269,6 +270,44 @@ begin
end; end;
end; end;
function wst_findCustomAttribute(
AWsdlShortNames : TStrings;
ANode : TDOMNode;
const AAttribute : string;
out AValue : string
) : Boolean;
var
nd : TDOMNode;
tmpCrs : IObjectCursor;
begin
Result := False;
tmpCrs := CreateCursorOn(
CreateChildrenCursor(ANode,cetRttiNode),
ParseFilter(CreateQualifiedNameFilterStr(s_document,AWsdlShortNames),TDOMNodeRttiExposer)
);
tmpCrs.Reset();
if tmpCrs.MoveNext() then begin
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
if nd.HasChildNodes() then begin
tmpCrs := CreateCursorOn(
CreateChildrenCursor(nd,cetRttiNode),
ParseFilter(Format('%s=%s',[s_NODE_NAME,QuotedStr(s_customAttributes)]),TDOMNodeRttiExposer)
);
tmpCrs.Reset();
if tmpCrs.MoveNext() then begin
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
if ( nd.Attributes <> nil ) then begin
nd := nd.Attributes.GetNamedItem(AAttribute);
if Assigned(nd) then begin
Result := True;
AValue := nd.NodeValue;
end;
end;
end;
end;
end;
end;
{ TWsdlParser } { TWsdlParser }
procedure TWsdlParser.DoOnMessage(const AMsgType : TMessageType; const AMsg : string); procedure TWsdlParser.DoOnMessage(const AMsgType : TMessageType; const AMsg : string);
@ -386,6 +425,7 @@ var
begin begin
CreateWstInterfaceSymbolTable(SymbolTable); CreateWstInterfaceSymbolTable(SymbolTable);
FModule := TPasModule(SymbolTable.CreateElement(TPasModule,AModuleName,SymbolTable.Package,visDefault,'',0)); FModule := TPasModule(SymbolTable.CreateElement(TPasModule,AModuleName,SymbolTable.Package,visDefault,'',0));
SymbolTable.Package.Modules.Add(FModule);
FModule.InterfaceSection := TPasSection(SymbolTable.CreateElement(TPasSection,'',FModule,visDefault,'',0)); FModule.InterfaceSection := TPasSection(SymbolTable.CreateElement(TPasSection,'',FModule,visDefault,'',0));
FPortTypeCursor := nil; FPortTypeCursor := nil;
@ -2024,31 +2064,30 @@ var
function IsHeaderBlock() : Boolean; function IsHeaderBlock() : Boolean;
var var
nd : TDOMNode; strBuffer : string;
tmpCrs : IObjectCursor;
begin begin
Result := False; Result := wst_findCustomAttribute(FOwner.FWsdlShortNames,FTypeNode,s_headerBlock,strBuffer) and AnsiSameText('true',Trim(strBuffer));
tmpCrs := CreateCursorOn( end;
CreateChildrenCursor(FTypeNode,cetRttiNode),
ParseFilter(CreateQualifiedNameFilterStr(s_document,FOwner.FWsdlShortNames),TDOMNodeRttiExposer) function IsRecordType() : Boolean;
); var
tmpCrs.Reset(); strBuffer : string;
if tmpCrs.MoveNext() then begin begin
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject; Result := wst_findCustomAttribute(FOwner.FWsdlShortNames,FTypeNode,s_record,strBuffer) and AnsiSameText('true',Trim(strBuffer));
if nd.HasChildNodes() then begin end;
tmpCrs := CreateCursorOn(
CreateChildrenCursor(nd,cetRttiNode), procedure ParseElementsAndAttributes(AEltCrs, AEltAttCrs : IObjectCursor);
ParseFilter(Format('%s=%s',[s_NODE_NAME,QuotedStr(s_customAttributes)]),TDOMNodeRttiExposer) begin
); if Assigned(AEltCrs) then begin
tmpCrs.Reset(); AEltCrs.Reset();
if tmpCrs.MoveNext() then begin while AEltCrs.MoveNext() do begin
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject; ParseElement((AEltCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject);
if ( nd.Attributes <> nil ) then begin end;
nd := nd.Attributes.GetNamedItem(s_headerBlock); end;
if Assigned(nd) then if Assigned(AEltAttCrs) then begin
Result := AnsiSameText('true',Trim(nd.NodeValue)); AEltAttCrs.Reset();
end; while AEltAttCrs.MoveNext() do begin
end; ParseElement((AEltAttCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject);
end; end;
end; end;
end; end;
@ -2061,6 +2100,8 @@ var
propTyp, tmpPropTyp : TPasProperty; propTyp, tmpPropTyp : TPasProperty;
tmpClassDef : TPasClassType; tmpClassDef : TPasClassType;
i : Integer; i : Integer;
recordType : TPasRecordType;
tmpRecVar : TPasVariable;
begin begin
ExtractBaseType(); ExtractBaseType();
eltCrs := ExtractElementCursor(eltAttCrs); eltCrs := ExtractElementCursor(eltAttCrs);
@ -2097,18 +2138,7 @@ begin
classDef.AncestorType.AddRef(); classDef.AncestorType.AddRef();
if Assigned(eltCrs) or Assigned(eltAttCrs) then begin if Assigned(eltCrs) or Assigned(eltAttCrs) then begin
isArrayDef := False; isArrayDef := False;
if Assigned(eltCrs) then begin ParseElementsAndAttributes(eltCrs,eltAttCrs);
eltCrs.Reset();
while eltCrs.MoveNext() do begin
ParseElement((eltCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject);
end;
end;
if Assigned(eltAttCrs) then begin
eltAttCrs.Reset();
while eltAttCrs.MoveNext() do begin
ParseElement((eltAttCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject);
end;
end;
if ( arrayItems.Count > 0 ) then begin if ( arrayItems.Count > 0 ) then begin
if ( arrayItems.Count = 1 ) and ( GetElementCount(classDef.Members,TPasProperty) = 1 ) then begin if ( arrayItems.Count = 1 ) and ( GetElementCount(classDef.Members,TPasProperty) = 1 ) then begin
Result := nil; Result := nil;
@ -2155,6 +2185,30 @@ begin
end; end;
end; end;
end; end;
//check for record
if ( FDerivationMode = dmNone ) and Result.InheritsFrom(TPasClassType) and IsRecordType() then begin
tmpClassDef := classDef;
classDef := nil;
recordType := TPasRecordType(FSymbols.CreateElement(TPasRecordType,tmpClassDef.Name,FSymbols.CurrentModule.InterfaceSection,visPublic,'',0));
Result := recordType;
if hasInternalName then
FSymbols.RegisterExternalAlias(recordType,ATypeName);
for i := 0 to Pred(tmpClassDef.Members.Count) do begin
if TPasElement(tmpClassDef.Members[i]).InheritsFrom(TPasProperty) then begin
propTyp := TPasProperty(tmpClassDef.Members[i]);
tmpRecVar := TPasVariable(FSymbols.CreateElement(TPasVariable,propTyp.Name,recordType,visPublic,'',0));
tmpRecVar.VarType := propTyp.VarType;
tmpRecVar.VarType.AddRef();
FSymbols.RegisterExternalAlias(tmpRecVar,FSymbols.GetExternalName(propTyp));
recordType.Members.Add(tmpRecVar);
if FSymbols.IsAttributeProperty(propTyp) then begin
FSymbols.SetPropertyAsAttribute(tmpRecVar,True);
end;
end;
end;
FreeAndNil(tmpClassDef);
end;
except except
FreeAndNil(Result); FreeAndNil(Result);
raise; raise;