diff --git a/wst/trunk/tests/record/server/record_server.lpi b/wst/trunk/tests/record/server/record_server.lpi
index 687f9f060..698534c17 100644
--- a/wst/trunk/tests/record/server/record_server.lpi
+++ b/wst/trunk/tests/record/server/record_server.lpi
@@ -12,7 +12,7 @@
-
+
@@ -36,8 +36,8 @@
-
-
+
+
@@ -98,8 +98,8 @@
-
-
+
+
@@ -119,7 +119,7 @@
-
+
@@ -188,7 +188,16 @@
-
+
+
+
+
+
+
+
+
+
+
diff --git a/wst/trunk/type_lib_edtr/edit_helper.pas b/wst/trunk/type_lib_edtr/edit_helper.pas
index 0bae966ff..e3c9a0b77 100644
--- a/wst/trunk/type_lib_edtr/edit_helper.pas
+++ b/wst/trunk/type_lib_edtr/edit_helper.pas
@@ -41,7 +41,8 @@ type
TObjectUpdaterClass = class of TObjectUpdater;
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 CreateInterface(ASymbolTable : TwstPasTreeContainer) : TPasClassType;
function CreateMethod(
@@ -75,7 +76,8 @@ type
implementation
uses Contnrs, Forms, ufEnumedit, ufclassedit, uinterfaceedit, uprocedit,
- uargedit, umoduleedit, ubindingedit, ufarrayedit, uftypealiasedit;
+ uargedit, umoduleedit, ubindingedit, ufarrayedit, uftypealiasedit,
+ ufrecordedit;
type
@@ -164,6 +166,17 @@ type
):Boolean;override;
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 = class(TObjectUpdater)
@@ -241,6 +254,30 @@ type
):Boolean;override;
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 }
class function TTypeAliasUpdater.CanHandle(AObject : TObject) : Boolean;
@@ -517,7 +554,7 @@ begin
end;
end;
-function CreateCompoundObject(ASymbolTable : TwstPasTreeContainer) : TPasClassType;
+function CreateClassObject(ASymbolTable : TwstPasTreeContainer) : TPasClassType;
var
f : TfClassEdit;
begin
@@ -530,6 +567,19 @@ begin
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;
var
f : TfArrayEdit;
@@ -716,6 +766,7 @@ initialization
UpdaterRegistryInst.RegisterHandler(TBindingUpdater);
UpdaterRegistryInst.RegisterHandler(TArrayUpdater);
UpdaterRegistryInst.RegisterHandler(TTypeAliasUpdater);
+ UpdaterRegistryInst.RegisterHandler(TRecordUpdater);
finalization
FreeAndNil(UpdaterRegistryInst);
diff --git a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi
index 6fe5f7b82..b521e0bf9 100644
--- a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi
+++ b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi
@@ -7,7 +7,7 @@
-
+
@@ -32,15 +32,13 @@
-
+
-
+
-
-
@@ -49,8 +47,8 @@
-
-
+
+
@@ -60,17 +58,17 @@
-
+
-
-
-
-
+
+
+
+
-
+
@@ -78,9 +76,9 @@
-
-
-
+
+
+
@@ -110,9 +108,11 @@
-
-
+
+
+
+
@@ -120,7 +120,7 @@
-
+
@@ -128,9 +128,9 @@
-
-
-
+
+
+
@@ -141,9 +141,11 @@
-
-
+
+
+
+
@@ -151,100 +153,102 @@
-
-
+
+
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -254,13 +258,13 @@
-
+
-
+
@@ -271,84 +275,80 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -359,49 +359,49 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -410,28 +410,28 @@
-
+
-
+
-
+
-
+
@@ -441,29 +441,31 @@
-
+
-
+
-
+
-
+
+
+
-
+
@@ -473,20 +475,20 @@
-
+
-
+
-
+
@@ -497,14 +499,14 @@
-
+
-
+
@@ -514,38 +516,38 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -555,40 +557,40 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -598,7 +600,7 @@
-
+
@@ -608,195 +610,93 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr
index 12e2c1051..463c9007e 100644
--- a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr
+++ b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr
@@ -12,7 +12,7 @@ uses
edit_helper, ufclassedit, wsdl_generator, ufpropedit, uinterfaceedit, udm,
pascal_parser_intf, PasTree, PParser, uprocedit, common_gui_utils, uargedit,
umoduleedit, ubindingedit, ufrmsaveoption, ufarrayedit, generator,
- uftypealiasedit;
+ uftypealiasedit, ufrecordedit;
begin
Application.Initialize;
diff --git a/wst/trunk/type_lib_edtr/ufclassedit.lfm b/wst/trunk/type_lib_edtr/ufclassedit.lfm
index ba0c1caa5..8f67113e9 100644
--- a/wst/trunk/type_lib_edtr/ufclassedit.lfm
+++ b/wst/trunk/type_lib_edtr/ufclassedit.lfm
@@ -1,7 +1,7 @@
object fClassEdit: TfClassEdit
- Left = 358
+ Left = 272
Height = 547
- Top = 113
+ Top = 42
Width = 518
HorzScrollBar.Page = 517
VertScrollBar.Page = 546
@@ -104,7 +104,8 @@ object fClassEdit: TfClassEdit
Width = 200
end
item
- Caption = 'Attrbute'
+ Caption = 'Attribute'
+ Width = 60
end>
PopupMenu = PopupMenu1
RowSelect = True
diff --git a/wst/trunk/type_lib_edtr/ufclassedit.lrs b/wst/trunk/type_lib_edtr/ufclassedit.lrs
index 97c9f07a9..a4e8405ce 100644
--- a/wst/trunk/type_lib_edtr/ufclassedit.lrs
+++ b/wst/trunk/type_lib_edtr/ufclassedit.lrs
@@ -1,8 +1,8 @@
{ Ceci est un fichier ressource généré automatiquement par Lazarus }
LazarusResources.Add('TfClassEdit','FORMDATA',[
- 'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3'f'#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
+ 'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3#16#1#6'Height'#3'#'#2#3'Top'#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'
+'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
@@ -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'
+'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'
- +'n'#6#4'Type'#5'Width'#3#200#0#0#1#7'Caption'#6#8'Attrbute'#0#0#9'PopupMenu'
- +#7#10'PopupMenu1'#9'RowSelect'#9#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'
- +#10'OnDblClick'#7#15'edtPropDblClick'#0#0#0#7'TButton'#7'Button3'#4'Left'#2#4
- +#6'Height'#2#25#3'Top'#3#165#1#5'Width'#2'd'#6'Action'#7#10'actPropAdd'#7'An'
- +'chors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOr'
- +'der'#2#2#0#0#7'TButton'#7'Button4'#4'Left'#2't'#6'Height'#2#25#3'Top'#3#165
- +#1#5'Width'#2'd'#6'Action'#7#11'actPropEdit'#7'Anchors'#11#6'akLeft'#8'akBot'
- +'tom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#3#0#0#7'TButton'#7'B'
- +'utton5'#4'Left'#3#228#0#6'Height'#2#25#3'Top'#3#165#1#5'Width'#2'd'#6'Actio'
- +'n'#7#13'actPropDelete'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpaci'
- +'ng.InnerBorder'#2#4#8'TabOrder'#2#4#0#0#9'TComboBox'#9'edtParent'#4'Left'#2
- +'\'#6'Height'#2#21#3'Top'#2':'#5'Width'#3#150#1#7'Anchors'#11#5'akTop'#6'akL'
- +'eft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cba'
- +'ctSearchAscending'#0#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'#7#14'csD'
- +'ropDownList'#8'TabOrder'#2#5#0#0#0#0#11'TActionList'#11'ActionList1'#4'left'
- +#3#232#0#3'top'#3#200#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'i'#3'top'#3#186#0#0#9'TMenuItem'#9
- +'MenuItem1'#6'Action'#7#10'actPropAdd'#7'OnClick'#7#17'actPropAddExecute'#0#0
- +#9'TMenuItem'#9'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
+ +'n'#6#4'Type'#5'Width'#3#200#0#0#1#7'Caption'#6#9'Attribute'#5'Width'#2'<'#0
+ +#0#9'PopupMenu'#7#10'PopupMenu1'#9'RowSelect'#9#8'TabOrder'#2#0#9'ViewStyle'
+ +#7#8'vsReport'#10'OnDblClick'#7#15'edtPropDblClick'#0#0#0#7'TButton'#7'Butto'
+ +'n3'#4'Left'#2#4#6'Height'#2#25#3'Top'#3#165#1#5'Width'#2'd'#6'Action'#7#10
+ +'actPropAdd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBor'
+ +'der'#2#4#8'TabOrder'#2#2#0#0#7'TButton'#7'Button4'#4'Left'#2't'#6'Height'#2
+ +#25#3'Top'#3#165#1#5'Width'#2'd'#6'Action'#7#11'actPropEdit'#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#228#0#6'Height'#2#25#3'Top'#3#165#1#5'Width'
+ +#2'd'#6'Action'#7#13'actPropDelete'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25
+ +'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#4#0#0#9'TComboBox'#9'edtParent'
+ +#4'Left'#2'\'#6'Height'#2#21#3'Top'#2':'#5'Width'#3#150#1#7'Anchors'#11#5'ak'
+ +'Top'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11#22'cbactEndOfLineComple'
+ +'te'#20'cbactSearchAscending'#0#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'
+ +#7#14'csDropDownList'#8'TabOrder'#2#5#0#0#0#0#11'TActionList'#11'ActionList1'
+ +#4'left'#3#232#0#3'top'#3#200#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18
+ +'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actO'
+ +'KUpdate'#0#0#7'TAction'#10'actPropAdd'#7'Caption'#6#12'New Property'#18'Dis'
+ +'ableIfNoHandler'#9#9'OnExecute'#7#17'actPropAddExecute'#0#0#7'TAction'#11'a'
+ +'ctPropEdit'#7'Caption'#6#13'Edit Property'#18'DisableIfNoHandler'#9#9'OnExe'
+ +'cute'#7#18'actPropEditExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TA'
+ +'ction'#13'actPropDelete'#7'Caption'#6#15'Delete Property'#18'DisableIfNoHan'
+ +'dler'#9#9'OnExecute'#7#20'actPropDeleteExecute'#8'OnUpdate'#7#17'actPropEdi'
+ +'tUpdate'#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#2'i'#3'top'#3#186#0#0#9
+ +'TMenuItem'#9'MenuItem1'#6'Action'#7#10'actPropAdd'#7'OnClick'#7#17'actPropA'
+ +'ddExecute'#0#0#9'TMenuItem'#9'MenuItem2'#6'Action'#7#11'actPropEdit'#7'OnCl'
+ +'ick'#7#18'actPropEditExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#13
+ +'actPropDelete'#7'OnClick'#7#20'actPropDeleteExecute'#0#0#0#0
]);
diff --git a/wst/trunk/type_lib_edtr/ufclassedit.pas b/wst/trunk/type_lib_edtr/ufclassedit.pas
index bc4a3470e..d140f4877 100644
--- a/wst/trunk/type_lib_edtr/ufclassedit.pas
+++ b/wst/trunk/type_lib_edtr/ufclassedit.pas
@@ -91,7 +91,7 @@ procedure TfClassEdit.actPropAddExecute(Sender: TObject);
var
prp : TPasProperty;
begin
- prp := CreateProperty(FObject,FSymbolTable);
+ prp := CreateProperty(FObject,FSymbolTable) as TPasProperty;
if Assigned(prp) then begin
LoadProperty(prp);
end;
diff --git a/wst/trunk/type_lib_edtr/ufpropedit.pas b/wst/trunk/type_lib_edtr/ufpropedit.pas
index ffe01a5b1..f14e4fae7 100644
--- a/wst/trunk/type_lib_edtr/ufpropedit.pas
+++ b/wst/trunk/type_lib_edtr/ufpropedit.pas
@@ -44,19 +44,21 @@ type
procedure actOKExecute(Sender: TObject);
procedure actOKUpdate(Sender: TObject);
private
- FClassObject: TPasClassType;
+ FClassObject: TPasType;
FUpdateType : TEditType;
- FObject : TPasProperty;
+ FObject : TPasVariable;
FSymbolTable : TwstPasTreeContainer;
private
property UpdateType : TEditType read FUpdateType;
- property ClassObject : TPasClassType read FClassObject;
+ property ClassObject : TPasType read FClassObject;
private
procedure LoadFromObject();
procedure SaveToObject();
+ function GetMembers() : TList;
+ function IsClassType() : Boolean;
public
function UpdateObject(
- var AObject : TPasProperty;
+ var AObject : TPasVariable;
const AUpdateType : TEditType;
ASymbolTable : TwstPasTreeContainer
) : Boolean;
@@ -65,16 +67,21 @@ type
var
fPropEdit: TfPropEdit;
- function CreateProperty(AClass : TPasClassType; ASymboltable : TwstPasTreeContainer):TPasProperty ;
- function UpdateProperty(AProp : TPasProperty; ASymboltable : TwstPasTreeContainer):Boolean;
+ function CreateProperty(AClass : TPasType; ASymboltable : TwstPasTreeContainer):TPasVariable ;
+ function UpdateProperty(AProp : TPasVariable; ASymboltable : TwstPasTreeContainer):Boolean;
implementation
uses parserutils;
-function CreateProperty(AClass : TPasClassType; ASymboltable : TwstPasTreeContainer):TPasProperty ;
+function CreateProperty(AClass : TPasType; ASymboltable : TwstPasTreeContainer):TPasVariable ;
var
f : TfPropEdit;
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;
f := TfPropEdit.Create(Application);
try
@@ -85,12 +92,13 @@ begin
end;
end;
-function UpdateProperty(AProp : TPasProperty; ASymboltable : TwstPasTreeContainer):Boolean;
+function UpdateProperty(AProp : TPasVariable; ASymboltable : TwstPasTreeContainer):Boolean;
var
f : TfPropEdit;
begin
f := TfPropEdit.Create(Application);
try
+ f.FClassObject := AProp.Parent as TPasType;
Result := f.UpdateObject(AProp,etUpdate,ASymboltable);
finally
f.Release();
@@ -107,7 +115,11 @@ begin
TAction(Sender).Enabled :=
( not IsStrEmpty(internalName) ) 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;
procedure TfPropEdit.actOKExecute(Sender: TObject);
@@ -116,6 +128,9 @@ begin
end;
procedure TfPropEdit.LoadFromObject();
+var
+ i : PtrInt;
+ ls : TStrings;
begin
edtName.Text := '';
edtType.Clear();
@@ -123,6 +138,16 @@ begin
try
edtType.Items.Clear();
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
edtType.Items.EndUpdate();
end;
@@ -131,7 +156,12 @@ begin
edtName.Text := FSymbolTable.GetExternalName(FObject);
edtType.ItemIndex := edtType.Items.IndexOfObject(FObject.VarType);
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
Self.Caption := 'New';
end;
@@ -139,21 +169,29 @@ end;
procedure TfPropEdit.SaveToObject();
var
- locObj : TPasProperty;
+ locObj : TPasVariable;
+ locObjProp : TPasProperty;
typExtName, typIntName : string;
propType : TPasType;
+ eltClass : TPTreeElement;
+ locIsClass : Boolean;
begin
locObj := nil;
+ locIsClass := IsClassType();
+ if locIsClass then
+ eltClass := TPasProperty
+ else
+ eltClass := TPasVariable;
typExtName := ExtractIdentifier(edtName.Text);
typIntName := MakeInternalSymbolNameFrom(typExtName);
propType := edtType.Items.Objects[edtType.ItemIndex] as TPasType;
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);
FObject := locObj;
locObj.VarType := propType;
locObj.VarType.AddRef();
- ClassObject.Members.Add(FObject);
+ GetMembers().Add(FObject);
end else begin
locObj := FObject;
if ( propType <> locObj.VarType ) then begin
@@ -164,19 +202,37 @@ begin
end;
locObj.Name := typIntName;
end;
- if edtOptional.Checked then
- locObj.StoredAccessorName := 'Has' + locObj.Name
- else
- locObj.StoredAccessorName := 'True';
- locObj.ReadAccessorName := 'F' + locObj.Name;
- locObj.WriteAccessorName := 'F' + locObj.Name;
+ if IsClassType() then begin
+ locObjProp := locObj as TPasProperty;
+ if edtOptional.Checked then
+ locObjProp.StoredAccessorName := 'Has' + locObjProp.Name
+ else
+ locObjProp.StoredAccessorName := 'True';
+ locObjProp.ReadAccessorName := 'F' + locObjProp.Name;
+ locObjProp.WriteAccessorName := 'F' + locObjProp.Name;
+ end;
FSymbolTable.RegisterExternalAlias(locObj,typExtName);
//if ( edtAttribute.Checked <> FSymbolTable.IsAttributeProperty(locObj) ) then
FSymbolTable.SetPropertyAsAttribute(locObj,edtAttribute.Checked);
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(
- var AObject : TPasProperty;
+ var AObject : TPasVariable;
const AUpdateType : TEditType;
ASymbolTable : TwstPasTreeContainer
): Boolean;
diff --git a/wst/trunk/type_lib_edtr/ufrecordedit.lfm b/wst/trunk/type_lib_edtr/ufrecordedit.lfm
new file mode 100644
index 000000000..26004be84
--- /dev/null
+++ b/wst/trunk/type_lib_edtr/ufrecordedit.lfm
@@ -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
diff --git a/wst/trunk/type_lib_edtr/ufrecordedit.lrs b/wst/trunk/type_lib_edtr/ufrecordedit.lrs
new file mode 100644
index 000000000..0e909c80e
--- /dev/null
+++ b/wst/trunk/type_lib_edtr/ufrecordedit.lrs
@@ -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
+]);
diff --git a/wst/trunk/type_lib_edtr/ufrecordedit.pas b/wst/trunk/type_lib_edtr/ufrecordedit.pas
new file mode 100644
index 000000000..94f89b6b9
--- /dev/null
+++ b/wst/trunk/type_lib_edtr/ufrecordedit.pas
@@ -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.
+
diff --git a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm
index da32c709d..23e37dba6 100644
--- a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm
+++ b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm
@@ -78,11 +78,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 81
- BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
- Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1
Keystrokes = <
@@ -407,7 +405,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
- SelectedColor.OnChange = nil
end
end
object tsWSDL: TTabSheet
@@ -427,9 +424,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 54
- BookMarkOptions.OnChange = nil
Gutter.ShowLineNumbers = True
- Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
@@ -754,7 +749,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
- SelectedColor.OnChange = nil
end
end
object tsProxy: TTabSheet
@@ -774,9 +768,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 81
+ BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
+ Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1
Keystrokes = <
@@ -1101,6 +1097,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
+ SelectedColor.OnChange = nil
end
end
object tsImp: TTabSheet
@@ -1120,9 +1117,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 81
+ BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
+ Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1
Keystrokes = <
@@ -1447,6 +1446,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
+ SelectedColor.OnChange = nil
end
end
object tsBinder: TTabSheet
@@ -1466,10 +1466,12 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 81
+ BookMarkOptions.OnChange = nil
Gutter.AutoSize = True
Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
+ Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1
Keystrokes = <
@@ -1794,6 +1796,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
+ SelectedColor.OnChange = nil
end
end
object tsLog: TTabSheet
@@ -1884,6 +1887,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Action = actCompoundCreate
OnClick = actCompoundCreateExecute
end
+ object MenuItem48: TMenuItem
+ Action = actRecordCreate
+ OnClick = actRecordCreateExecute
+ end
object MenuItem25: TMenuItem
Action = actIntfCreate
OnClick = actIntfCreateExecute
@@ -1967,7 +1974,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
OnExecute = actNewFileExecute
end
object actCompoundCreate: TAction
- Caption = 'Create Compound Type'
+ Caption = 'Create Class Type'
DisableIfNoHandler = True
OnExecute = actCompoundCreateExecute
end
@@ -2007,6 +2014,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
DisableIfNoHandler = True
OnExecute = actTypeALiasCreateExecute
end
+ object actRecordCreate: TAction
+ Caption = 'Create Record'
+ DisableIfNoHandler = True
+ OnExecute = actRecordCreateExecute
+ end
end
object OD: TOpenDialog
Title = 'Ouvrir un fichier existant'
@@ -2064,6 +2076,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Action = actCompoundCreate
OnClick = actCompoundCreateExecute
end
+ object MenuItem46: TMenuItem
+ Action = actRecordCreate
+ OnClick = actRecordCreateExecute
+ end
object MenuItem24: TMenuItem
Action = actIntfCreate
OnClick = actIntfCreateExecute
@@ -2113,6 +2129,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Action = actCompoundCreate
OnClick = actCompoundCreateExecute
end
+ object MenuItem47: TMenuItem
+ Action = actRecordCreate
+ OnClick = actRecordCreateExecute
+ end
object MenuItem44: TMenuItem
Action = actEnumCreate
OnClick = actEnumCreateExecute
diff --git a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs
index cd1de1fb5..bbdb51973 100644
--- a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs
+++ b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs
@@ -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'
+'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'
- +'pMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions'
- +'.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gut'
- +'ter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2
- +#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'Sh'
- +'ortCut'#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'S'
- +'hortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8
- +'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'S'
- +'hortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'S'
- +'hortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8
- +'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10
- +#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8
- +'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8
- +'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8
- +'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
- +'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
- +'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
- +'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
- +'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
- +#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
- +'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
- +'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
- +'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
- +#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
- +'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
- +#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
- +'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
- +'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
- +#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
- +'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
- +'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
- +'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
- +#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
- +'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
- +'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
- +'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
- +#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
- +#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
- +'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
- +'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
- +'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
- +#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
- +'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
- ,'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
- +'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
- +#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnC'
- +'hange'#13#0#0#0#9'TTabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#12'ClientHeigh'
- +'t'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#7'srcWSDL'#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#233#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'6'#24'BookMarkOptions.OnChang'
- +'e'#13#22'Gutter.ShowLineNumbers'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFol'
- +'dingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Comm'
- +'and'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comma'
- +'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
+ +'pMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.DigitCou'
+ +'nt'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter'
+ +'.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1
+ +#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7
+ +'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7
+ +'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1
+ +#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7
+ +'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7
+ +'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7
+ +'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7
+ +'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+ +'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+ +'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+ +'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+ +'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+ +'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+ +'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+ +'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+ +'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+ +#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+ +'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+ +'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+ +'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+ +#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+ +'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+ +#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+ +'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+ +'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+ +'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+ +#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+ +#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+ +'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+ +'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+ +#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+ +'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+ +#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+ +'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+ +'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+ +#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+ +'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+ +'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+ +'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+ +#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+ ,'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+ +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T'
+ +'TabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#12'ClientHeight'#3'='#2#11'Client'
+ +'Width'#3#245#1#0#8'TSynEdit'#7'srcWSDL'#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#233#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'6'#22'Gutter.ShowLineNumbers'#9#23'Gutter.CodeFo'
+ +'ldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Com'
+ +'mand'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comm'
+ +'and'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Co'
+ +'mmand'#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
@@ -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
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
- +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
- +'edColor.OnChange'#13#0#0#0#9'TTabSheet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#12
- +'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#8'srcProxy'#6'He'
- +'ight'#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'#17'Gutter.Digi'
- +'tCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gu'
- +'tter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'
- +#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0
- +#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0
- +#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'
- ,#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0
- +#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1
- +#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1
- +#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1
- +#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+ +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T'
+ +'TabSheet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#12'ClientHeight'#3'='#2#11'Clie'
+ +'ntWidth'#3#245#1#0#8'TSynEdit'#8'srcProxy'#6'Height'#3'='#2#5'Width'#3#245#1
+ +#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_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#17'Gutter.'
+ +'DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15
+ +'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'S'
+ +'ynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Comman'
+ +'d'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Co'
+ +'mmand'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Com'
+ +'mand'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'C'
+ +'ommand'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'C'
+ ,'ommand'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'C'
+ +'ommand'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7
+ +'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7
+ +'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7
+ +'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'C'
+ +'ommand'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7
+ +'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'C'
+ +'ommand'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7
+ +'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'C'
+ +'ommand'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7
+ +'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1
+ +#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '
+ +#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3
+ +'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCu'
+ +'t'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8
+ +'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'C'
+ +'ommand'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0
+ +#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3
+ +'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'Short'
+ +'Cut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8
+ +'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['
+ +#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'
+ +#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Com'
+ +'mand'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7
+ +'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0
+ +#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4'
+ +'@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'
+ +#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'Short'
+ +'Cut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8
+ +'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'
+ +#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3
+ +'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Comman'
+ +'d'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'C'
+ +'ommand'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1
+ +#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C'
+ +'`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCu'
+ +'t'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'Sh'
+ +'ortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'#13#0#0#0#9'TTabS'
+ +'heet'#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#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
@@ -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'
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
- +#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+ ,#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
@@ -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
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
- +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T'
- +'TabSheet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#12'ClientHeigh'
- +'t'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#6'srcImp'#6'Height'#3'='#2#5
- +'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10
- +'Font.Color'#7#7'clBlack'#11'Font.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'#17'Gutter.DigitCount'#2#5#22
- +'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldin'
- +'gWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'
- +#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3
- +#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2
- +'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'
- +#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2
- +#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2
- +#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6
- +#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2
- +#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2
- +#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2
- +#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13
- +#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
- +'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
- +'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
- +'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
- +'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
- +#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
- +'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
- ,'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
- +'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
- +#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
- +'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
- +#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
- +'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
- +'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
- +#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
- +'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
- +'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
- +'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
- +#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
- +'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
- +'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
- +'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
- +#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
- +#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
- +'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
- +'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
- +'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
- +#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
- +'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
- +'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
- +'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
- +#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#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'clBlac'
- +'k'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFix'
- +'ed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'Book'
- +'MarkOptions.Xoffset'#2'Q'#15'Gutter.AutoSize'#9#17'Gutter.DigitCount'#2#5#22
- +'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldin'
- +'gWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'
- +#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3
- +#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2
- +'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'
- +#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2
- +#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2
- +#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6
- +#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2
- +#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2
- +#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2
- +#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13
- +#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
- +'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
- +'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
- +'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
- +'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
- +#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
- +'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
- +'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
- +'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
- +#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
- +'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
- +#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
- +'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
- +'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
- +#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
- +'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
- +'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
- +'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
- +#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
- +'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
- +'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
- ,'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
- +#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
- +#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
- +'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
- +'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
- +'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
- +#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
- +'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
- +'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
- +'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
- +#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#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
+ +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
+ +'edColor.OnChange'#13#0#0#0#9'TTabSheet'#5'tsLog'#7'Caption'#6#4'&Log'#12'Cl'
+ +'ientHeight'#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'alClient'#13'Lines.Strings'#1#6#0#0#10'S'
+ +'crollBars'#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'ParentC'
+ +'olor'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuI'
+ +'tem'#9'MenuItem1'#7'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Ac'
+ +'tion'#7#10'actNewFile'#7'OnClick'#7#17'actNewFileExecute'#0#0#9'TMenuItem'#9
+ +'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#11'a'
+ +'ctOpenFile'#7'OnClick'#7#18'actOpenFileExecute'#0#0#9'TMenuItem'#9'MenuItem'
+ +'3'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9'TMenuIt'
+ +'em'#9'MenuItem7'#6'Action'#7#7'actSave'#7'OnClick'#7#14'actSaveExecute'#0#0
+ +#9'TMenuItem'#10'MenuItem32'#6'Action'#7#9'actSaveAs'#7'OnClick'#7#16'actSav'
+ +'eAsExecute'#0#0#9'TMenuItem'#10'MenuItem17'#7'Caption'#6#1'-'#0#0#9'TMenuIt'
+ +'em'#9'MenuItem4'#6'Action'#7#7'actExit'#7'OnClick'#7#14'actExitExecute'#0#0
+ +#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5'&View'#0#9'TMenuItem'#10'MenuI'
+ +'tem15'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecute'
+ +#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuI'
+ +'tem30'#6'Action'#7#13'actFullExpand'#7'OnClick'#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'Action'#7#13'actEnumCreate'#7'OnC'
+ +'lick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem23'#6'Action'#7
+ +#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExecute'#0#0#9'TMenu'
+ +'Item'#10'MenuItem48'#6'Action'#7#15'actRecordCreate'#7'OnClick'#7#22'actRec'
+ +'ordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem25'#6'Action'#7#13'actIntfCre'
+ +'ate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem35'#6
+ +'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0#0#9'T'
+ +'MenuItem'#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'Caption'#6
+ +#13'Update Object'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'
+ +#10'MenuItem34'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actDeleteExecute'#0
+ +#0#0#9'TMenuItem'#9'MenuItem6'#6'Action'#7#8'actAbout'#7'Caption'#6#6'&About'
+ +#7'OnClick'#7#15'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'Disab'
+ +'leIfNoHandler'#9#9'OnExecute'#7#18'actOpenFileExecute'#0#0#7'TAction'#7'act'
+ +'Exit'#7'Caption'#6#4'Exit'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actEx'
+ +'itExecute'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save generated files'
+ +' ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExportExecute'#8'OnUpda'
+ +'te'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'About'
+ +#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TAction'#9
+ +'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfNoHandler'#9#9'OnExecut'
+ +'e'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'
+ +#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#18'DisableIfNoHandler'
+ +#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAction'#15'actUpdateObject'
+ +#7'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actUpdate'
+ +'ObjectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'ac'
+ +'tRefreshView'#7'Caption'#6#14'&Refresh Views'#18'DisableIfNoHandler'#9#9'On'
+ +'Execute'#7#21'actRefreshViewExecute'#0#0#7'TAction'#10'actNewFile'#7'Captio'
+ +'n'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actNewFileExecu'
+ +'te'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6#17'Create Class Type'
+ ,#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actCompoundCreateExecute'#0#0#7
+ +'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Interface'#18'DisableIfNo'
+ +'Handler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAction'#13'actFul'
+ +'lExpand'#7'Caption'#6#11'Full expand'#18'DisableIfNoHandler'#9#9'OnExecute'
+ +#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFullCollapse'#7'Caption'#6
+ +#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actFullCollaps'
+ +'eExecute'#0#0#7'TAction'#7'actSave'#7'Caption'#6#4'Save'#18'DisableIfNoHand'
+ +'ler'#9#9'OnExecute'#7#14'actSaveExecute'#0#0#7'TAction'#9'actDelete'#7'Capt'
+ +'ion'#6#6'Delete'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actDeleteExecut'
+ +'e'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actArrayCreate'
+ +#7'Caption'#6#12'Create Array'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'ac'
+ +'tArrayCreateExecute'#0#0#7'TAction'#18'actTypeALiasCreate'#7'Caption'#6#17
+ +'Create Type ALias'#18'DisableIfNoHandler'#9#9'OnExecute'#7#25'actTypeALiasC'
+ +'reateExecute'#0#0#7'TAction'#15'actRecordCreate'#7'Caption'#6#13'Create Rec'
+ +'ord'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actRecordCreateExecute'#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'ofPathMustExist'#15'ofFileMustExist'
+ +#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#153#1#3'top'#2'X'#0#0#10'TS'
+ +'ynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlu'
+ +'e'#18'CommentAttri.Style'#11#6'fsBold'#0#22'StringAttri.Foreground'#7#8'clM'
+ +'aroon'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'DirectiveAttri.Foreground'#7
+ +#7'clGreen'#20'DirectiveAttri.Style'#11#6'fsBold'#0#14'NestedComments'#9#4'l'
+ +'eft'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2'SD'#5'Title'#6#27'Enregistre'
+ +'r le fichier sous'#10'DefaultExt'#6#5'.WSDL'#6'Filter'#6#25'WDSL files(*.WS'
+ +'DL)|*.WSDL'#11'FilterIndex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEnab'
+ +'leSizing'#12'ofViewDetail'#0#4'left'#3#242#1#3'top'#3#176#0#0#0#10'TPopupMe'
+ +'nu'#10'PopupMenu1'#4'left'#3#152#0#3'top'#3#152#0#0#9'TMenuItem'#10'MenuIte'
+ +'m28'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0#0
+ +#9'TMenuItem'#10'MenuItem27'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7#22
+ +'actFullCollapseExecute'#0#0#9'TMenuItem'#10'MenuItem39'#6'Action'#7#14'actR'
+ +'efreshView'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'Menu'
+ +'Item26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actE'
+ +'numCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuIt'
+ +'em21'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateEx'
+ +'ecute'#0#0#9'TMenuItem'#10'MenuItem46'#6'Action'#7#15'actRecordCreate'#7'On'
+ +'Click'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem24'#6'Actio'
+ +'n'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuIte'
+ +'m'#10'MenuItem37'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCr'
+ +'eateExecute'#0#0#9'TMenuItem'#10'MenuItem38'#6'Action'#7#18'actTypeALiasCre'
+ +'ate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuIte'
+ +'m22'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpda'
+ +'teObject'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'#10'MenuI'
+ +'tem33'#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
+'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
@@ -366,12 +372,14 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'TMenuItem'#10'MenuItem40'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem41'
+#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0#0#9
+'TMenuItem'#10'MenuItem45'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24
- +'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem44'#6'Action'#7#13'ac'
- +'tEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'Menu'
- +'Item43'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'
- +#0#0#9'TMenuItem'#10'MenuItem42'#6'Action'#7#18'actTypeALiasCreate'#7'OnClic'
- +'k'#7#25'actTypeALiasCreateExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'D'
- +'efaultFilter'#6#30'Documents WSDL (*.wsdl)|*.wsdl'#7'Enabled'#8#23'ElementA'
- +'ttri.Foreground'#7#6'clNavy'#30'AttributeValueAttri.Foreground'#7#8'clPurpl'
- +'e'#16'WantBracesParsed'#8#4'left'#3#210#1#3'top'#3#252#0#0#0#0
+ +'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem47'#6'Action'#7#15'ac'
+ +'tRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10
+ +'MenuItem44'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExec'
+ +'ute'#0#0#9'TMenuItem'#10'MenuItem43'#6'Action'#7#13'actIntfCreate'#7'OnClic'
+ +'k'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem42'#6'Action'#7#18
+ +'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#0#10'TSy'
+ +'nXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6#30'Documents WSDL (*.wsdl)|*.ws'
+ +'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
]);
diff --git a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.pas b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.pas
index 06e189dcb..4a92b1bd3 100644
--- a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.pas
+++ b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.pas
@@ -39,6 +39,7 @@ type
actFullCollapse: TAction;
actDelete : TAction;
actArrayCreate : TAction;
+ actRecordCreate : TAction;
actTypeALiasCreate : TAction;
actSave : TAction;
actNewFile: TAction;
@@ -84,6 +85,9 @@ type
MenuItem43 : TMenuItem;
MenuItem44 : TMenuItem;
MenuItem45 : TMenuItem;
+ MenuItem46 : TMenuItem;
+ MenuItem47 : TMenuItem;
+ MenuItem48 : TMenuItem;
MenuItem5: TMenuItem;
MenuItem6: TMenuItem;
MenuItem7 : TMenuItem;
@@ -130,6 +134,7 @@ type
procedure actIntfCreateExecute(Sender: TObject);
procedure actNewFileExecute(Sender: TObject);
procedure actOpenFileExecute(Sender: TObject);
+ procedure actRecordCreateExecute(Sender : TObject);
procedure actRefreshViewExecute(Sender: TObject);
procedure actSaveAsExecute(Sender: TObject);
procedure actSaveExecute (Sender : TObject );
@@ -405,6 +410,16 @@ begin
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);
begin
RenderSymbols();
@@ -571,7 +586,7 @@ procedure TfWstTypeLibraryEdit.actCompoundCreateExecute(Sender: TObject);
var
e : TPasClassType;
begin
- e := CreateCompoundObject(FSymbolTable);
+ e := CreateClassObject(FSymbolTable);
if Assigned(e) then begin
FindPainter(e).Paint(FSymbolTable,e,GetTypeNode());
end;
diff --git a/wst/trunk/type_lib_edtr/view_helper.pas b/wst/trunk/type_lib_edtr/view_helper.pas
index 338d64d38..e932c213e 100644
--- a/wst/trunk/type_lib_edtr/view_helper.pas
+++ b/wst/trunk/type_lib_edtr/view_helper.pas
@@ -235,6 +235,19 @@ type
class function CanHandle(AObj : TObject):Boolean;override;
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 = class(TTypeSymbolPainter)
@@ -294,6 +307,38 @@ type
class function CanHandle(AObj : TObject):Boolean;override;
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 }
class function TArrayTypeDefinitionPainter.CanHandle(AObj : TObject) : Boolean;
@@ -723,6 +768,7 @@ initialization
FPainterRegistryInst.RegisterHandler(TPasNativeSimpleTypePainter);
FPainterRegistryInst.RegisterHandler(TBindingPainter);
FPainterRegistryInst.RegisterHandler(TArrayTypeDefinitionPainter);
+ FPainterRegistryInst.RegisterHandler(TRecordTypeDefinitionPainter);
finalization
FreeAndNil(FPainterRegistryInst);
diff --git a/wst/trunk/type_lib_edtr/wsdl_generator.pas b/wst/trunk/type_lib_edtr/wsdl_generator.pas
index 685d68ef9..1a533f2b9 100644
--- a/wst/trunk/type_lib_edtr/wsdl_generator.pas
+++ b/wst/trunk/type_lib_edtr/wsdl_generator.pas
@@ -102,6 +102,18 @@ type
class function CanHandle(ASymbol : TObject) : Boolean;override;
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 = class(TTypeDefinition_TypeHandler)
@@ -158,6 +170,7 @@ const
sNAME = 'name';
sNAME_SPACE = 'namespace';
sPORT_TYPE = 'portType';
+ sRECORD = 'record';
sRESTRICTION = 'restriction';
sSEQUENCE = 'sequence';
sSERVICE = 'service';
@@ -717,9 +730,9 @@ begin
if not AContainer.IsAttributeProperty(p) 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)]);
- hasSequence := True;
end;
end;
+ hasSequence := True;
end;
end;
if hasSequence then begin
@@ -924,6 +937,7 @@ begin
r := GetWsdlTypeHandlerRegistry();
r.Register(TEnumTypeHandler);
r.Register(TClassTypeDefinition_TypeHandler);
+ r.Register(TPasRecordType_TypeHandler);
r.Register(TBaseArrayRemotable_TypeHandler);
r.Register(TTypeAliasDefinition_TypeHandler);
end;
@@ -970,6 +984,104 @@ begin
Result := Assigned(ASymbol) and ASymbol.InheritsFrom(TPasAliasType);
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
WsdlTypeHandlerRegistryInst := TWsdlTypeHandlerRegistry.Create() as IWsdlTypeHandlerRegistry;
RegisterFondamentalTypes();
diff --git a/wst/trunk/ws_helper/generator.pas b/wst/trunk/ws_helper/generator.pas
index 407f6c54e..64a6c9a58 100644
--- a/wst/trunk/ws_helper/generator.pas
+++ b/wst/trunk/ws_helper/generator.pas
@@ -2116,6 +2116,22 @@ var
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
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
s : string;
begin
@@ -2148,6 +2164,7 @@ begin
WriteLn('{$IFDEF %s}',[sRECORD_RTTI_DEFINE]);
Indent(); WriteLn(s,[ASymbol.Name,Format('__%s_TYPEINFO_FUNC__()',[ASymbol.Name]),ASymbol.Name]);
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
+ WriteAttributeProperties();
SetCurrentStream(FDecStream);
except
on e : Exception do
diff --git a/wst/trunk/ws_helper/pascal_parser_intf.pas b/wst/trunk/ws_helper/pascal_parser_intf.pas
index 034366cf3..730df3601 100644
--- a/wst/trunk/ws_helper/pascal_parser_intf.pas
+++ b/wst/trunk/ws_helper/pascal_parser_intf.pas
@@ -129,8 +129,8 @@ type
procedure RegisterExternalAlias(AObject : TPasElement; const AExternalName : String);
function SameName(AObject : TPasElement; const AName : string) : Boolean;
function GetExternalName(AObject : TPasElement) : string;
- function IsAttributeProperty(AObject : TPasProperty) : Boolean;
- procedure SetPropertyAsAttribute(AObject : TPasProperty; const AValue : Boolean);
+ function IsAttributeProperty(AObject : TPasVariable) : Boolean;
+ procedure SetPropertyAsAttribute(AObject : TPasVariable; const AValue : Boolean);
function IsInitNeed(AType: TPasType): Boolean;
function IsOfType(AType: TPasType; AClass: TClass): Boolean;
@@ -161,7 +161,8 @@ type
const AParamName : string;
const AStartPos : Integer = 0
) : 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 GetUltimeType(AType : TPasType) : TPasType;
@@ -269,6 +270,7 @@ var
begin
Result := TPasModule(AContainer.CreateElement(TPasModule,'base_service_intf',AContainer.Package,visPublic,'',0));
try
+ AContainer.Package.Modules.Add(Result);
AContainer.RegisterExternalAlias(Result,sXSD_NS);
Result.InterfaceSection := TPasSection(AContainer.CreateElement(TPasSection,'',Result,visDefault,'',0));
AddSystemSymbol(Result,AContainer);
@@ -380,22 +382,36 @@ begin
end;
end;
-function FindMember(AClass : TPasClassType; const AName : string) : TPasElement ;
+function InternalFindMember(AMemberList : TList; const AName : string) : TPasElement ;
var
- memberList : TList;
i : Integer;
begin
Result := nil;
- if ( AClass <> nil ) then begin
- memberList := AClass.Members;
- for i := 0 to Pred(memberList.Count) do begin
- if AnsiSameText(AName,TPasElement(memberList[i]).Name) then begin
- Result := TPasElement(memberList[i]);
+ if ( AMemberList <> nil ) then begin
+ for i := 0 to Pred(AMemberList.Count) do begin
+ if AnsiSameText(AName,TPasElement(AMemberList[i]).Name) then begin
+ Result := TPasElement(AMemberList[i]);
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 ;
begin
Result := ExtractIdentifier(AName);
@@ -694,12 +710,12 @@ begin
end;
end;
-function TwstPasTreeContainer.IsAttributeProperty(AObject: TPasProperty): Boolean;
+function TwstPasTreeContainer.IsAttributeProperty(AObject: TPasVariable): Boolean;
begin
Result := AnsiSameText(Properties.GetValue(AObject,sATTRIBUTE),'True');
end;
-procedure TwstPasTreeContainer.SetPropertyAsAttribute(AObject: TPasProperty; const AValue: Boolean);
+procedure TwstPasTreeContainer.SetPropertyAsAttribute(AObject: TPasVariable; const AValue: Boolean);
var
s : string;
begin
diff --git a/wst/trunk/ws_helper/ws_helper.lpi b/wst/trunk/ws_helper/ws_helper.lpi
index d696bcab3..1a5375e78 100644
--- a/wst/trunk/ws_helper/ws_helper.lpi
+++ b/wst/trunk/ws_helper/ws_helper.lpi
@@ -12,7 +12,7 @@
-
+
@@ -33,7 +33,7 @@
-
+
@@ -50,7 +50,7 @@
-
+
@@ -60,7 +60,7 @@
-
+
@@ -75,7 +75,7 @@
-
+
@@ -88,7 +88,7 @@
-
+
@@ -131,7 +131,7 @@
-
+
@@ -173,7 +173,7 @@
-
+
@@ -182,7 +182,7 @@
-
+
@@ -203,7 +203,7 @@
-
+
@@ -292,7 +292,7 @@
-
+
@@ -433,7 +433,7 @@
-
+
@@ -499,33 +499,16 @@
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -560,7 +543,7 @@
diff --git a/wst/trunk/ws_helper/wsdl2pas_imp.pas b/wst/trunk/ws_helper/wsdl2pas_imp.pas
index 5e32ea219..ee6737463 100644
--- a/wst/trunk/ws_helper/wsdl2pas_imp.pas
+++ b/wst/trunk/ws_helper/wsdl2pas_imp.pas
@@ -199,6 +199,7 @@ const
s_port : WideString = 'port';
s_portType : WideString = 'portType';
s_prohibited : WideString = 'prohibited';
+ s_record : WideString = 'record';
s_ref : WideString = 'ref';
s_required : WideString = 'required';
s_restriction : WideString = 'restriction';
@@ -269,6 +270,44 @@ begin
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 }
procedure TWsdlParser.DoOnMessage(const AMsgType : TMessageType; const AMsg : string);
@@ -386,6 +425,7 @@ var
begin
CreateWstInterfaceSymbolTable(SymbolTable);
FModule := TPasModule(SymbolTable.CreateElement(TPasModule,AModuleName,SymbolTable.Package,visDefault,'',0));
+ SymbolTable.Package.Modules.Add(FModule);
FModule.InterfaceSection := TPasSection(SymbolTable.CreateElement(TPasSection,'',FModule,visDefault,'',0));
FPortTypeCursor := nil;
@@ -2024,31 +2064,30 @@ var
function IsHeaderBlock() : Boolean;
var
- nd : TDOMNode;
- tmpCrs : IObjectCursor;
+ strBuffer : string;
begin
- Result := False;
- tmpCrs := CreateCursorOn(
- CreateChildrenCursor(FTypeNode,cetRttiNode),
- ParseFilter(CreateQualifiedNameFilterStr(s_document,FOwner.FWsdlShortNames),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(s_headerBlock);
- if Assigned(nd) then
- Result := AnsiSameText('true',Trim(nd.NodeValue));
- end;
- end;
+ Result := wst_findCustomAttribute(FOwner.FWsdlShortNames,FTypeNode,s_headerBlock,strBuffer) and AnsiSameText('true',Trim(strBuffer));
+ end;
+
+ function IsRecordType() : Boolean;
+ var
+ strBuffer : string;
+ begin
+ Result := wst_findCustomAttribute(FOwner.FWsdlShortNames,FTypeNode,s_record,strBuffer) and AnsiSameText('true',Trim(strBuffer));
+ end;
+
+ procedure ParseElementsAndAttributes(AEltCrs, AEltAttCrs : IObjectCursor);
+ begin
+ if Assigned(AEltCrs) then begin
+ AEltCrs.Reset();
+ while AEltCrs.MoveNext() do begin
+ ParseElement((AEltCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject);
+ end;
+ end;
+ if Assigned(AEltAttCrs) then begin
+ AEltAttCrs.Reset();
+ while AEltAttCrs.MoveNext() do begin
+ ParseElement((AEltAttCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject);
end;
end;
end;
@@ -2061,6 +2100,8 @@ var
propTyp, tmpPropTyp : TPasProperty;
tmpClassDef : TPasClassType;
i : Integer;
+ recordType : TPasRecordType;
+ tmpRecVar : TPasVariable;
begin
ExtractBaseType();
eltCrs := ExtractElementCursor(eltAttCrs);
@@ -2097,18 +2138,7 @@ begin
classDef.AncestorType.AddRef();
if Assigned(eltCrs) or Assigned(eltAttCrs) then begin
isArrayDef := False;
- if Assigned(eltCrs) then begin
- 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;
+ ParseElementsAndAttributes(eltCrs,eltAttCrs);
if ( arrayItems.Count > 0 ) then begin
if ( arrayItems.Count = 1 ) and ( GetElementCount(classDef.Members,TPasProperty) = 1 ) then begin
Result := nil;
@@ -2155,6 +2185,30 @@ begin
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
FreeAndNil(Result);
raise;