You've already forked lazarus-ccr
json serialization : client & server
base64 encoded support + tests new tests for schema parsers : complex type extending simple type git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@303 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -1284,7 +1284,7 @@ begin
|
||||
StackTop().CreateInnerBuffer(dtInt64U)^.Int64U := int64UData;
|
||||
end;
|
||||
{$ENDIF}
|
||||
tkClass :
|
||||
tkClass, tkRecord :
|
||||
begin
|
||||
raise EBinaryFormatterException.Create('Inner Scope value must be a "simple type" value.');
|
||||
end;
|
||||
@ -1502,7 +1502,7 @@ begin
|
||||
tkAString
|
||||
{$ENDIF} : string(AData) := dataBuffer^.StrData^.Data;
|
||||
|
||||
tkClass : raise EBinaryFormatterException.Create('Inner Scope value must be a "simple type" value.');
|
||||
tkClass, tkRecord : raise EBinaryFormatterException.Create('Inner Scope value must be a "simple type" value.');
|
||||
{$IFDEF FPC}
|
||||
tkBool : Boolean(AData) := dataBuffer^.BoolData;
|
||||
{$ENDIF}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -270,6 +270,34 @@ type
|
||||
property Data : string read FData write FData;
|
||||
end;
|
||||
|
||||
{ TBase64StringRemotable }
|
||||
|
||||
TBase64StringRemotable = class(TAbstractSimpleRemotable)
|
||||
private
|
||||
FBinaryData : string;
|
||||
private
|
||||
function GetEncodedString : string;
|
||||
procedure SetEncodedString(const AValue : string);
|
||||
public
|
||||
class procedure Save(
|
||||
AObject : TBaseRemotable;
|
||||
AStore : IFormatterBase;
|
||||
const AName : string;
|
||||
const ATypeInfo : PTypeInfo
|
||||
);override;
|
||||
class procedure Load(
|
||||
var AObject : TObject;
|
||||
AStore : IFormatterBase;
|
||||
var AName : string;
|
||||
const ATypeInfo : PTypeInfo
|
||||
);override;
|
||||
|
||||
procedure Assign(Source: TPersistent); override;
|
||||
function Equal(const ACompareTo : TBaseRemotable) : Boolean;override;
|
||||
property BinaryData : string read FBinaryData write FBinaryData;
|
||||
property EncodedString : string read GetEncodedString write SetEncodedString;
|
||||
end;
|
||||
|
||||
{ TBaseDateRemotable }
|
||||
|
||||
TBaseDateRemotable = class(TAbstractSimpleRemotable)
|
||||
@ -551,6 +579,23 @@ type
|
||||
property Value : string read FValue write FValue;
|
||||
end;
|
||||
|
||||
{ TBase64StringExtRemotable }
|
||||
|
||||
TBase64StringExtRemotable = class(TBaseComplexSimpleContentRemotable)
|
||||
private
|
||||
FBinaryData : string;
|
||||
private
|
||||
function GetEncodedString() : string;
|
||||
procedure SetEncodedString(const AValue : string);
|
||||
protected
|
||||
class procedure SaveValue(AObject : TBaseRemotable; AStore : IFormatterBase);override;
|
||||
class procedure LoadValue(var AObject : TObject; AStore : IFormatterBase);override;
|
||||
public
|
||||
function Equal(const ACompareTo : TBaseRemotable) : Boolean;override;
|
||||
property BinaryData : string read FBinaryData write FBinaryData;
|
||||
property EncodedString : string read GetEncodedString write SetEncodedString;
|
||||
end;
|
||||
|
||||
{ TComplexBooleanContentRemotable }
|
||||
|
||||
TComplexBooleanContentRemotable = class(TBaseComplexSimpleContentRemotable)
|
||||
@ -1267,7 +1312,7 @@ var
|
||||
{$ENDIF HAS_FORMAT_SETTINGS}
|
||||
|
||||
implementation
|
||||
uses imp_utils, record_rtti;
|
||||
uses imp_utils, record_rtti, basex_encode;
|
||||
|
||||
type
|
||||
PObject = ^TObject;
|
||||
@ -5222,6 +5267,105 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TBase64StringRemotable }
|
||||
|
||||
function TBase64StringRemotable.GetEncodedString() : string;
|
||||
begin
|
||||
Result := Base64Encode(BinaryData);
|
||||
end;
|
||||
|
||||
procedure TBase64StringRemotable.SetEncodedString(const AValue : string);
|
||||
begin
|
||||
BinaryData := Base64Decode(AValue,[xoDecodeIgnoreIllegalChar]);
|
||||
end;
|
||||
|
||||
class procedure TBase64StringRemotable.Save(
|
||||
AObject : TBaseRemotable;
|
||||
AStore : IFormatterBase;
|
||||
const AName : string;
|
||||
const ATypeInfo : PTypeInfo
|
||||
);
|
||||
var
|
||||
buffer : string;
|
||||
begin
|
||||
if ( AObject <> nil ) then
|
||||
buffer := TBase64StringRemotable(AObject).BinaryData
|
||||
else
|
||||
buffer := '';
|
||||
AStore.Put(AName,TypeInfo(string),buffer);
|
||||
end;
|
||||
|
||||
class procedure TBase64StringRemotable.Load(
|
||||
var AObject : TObject;
|
||||
AStore : IFormatterBase;
|
||||
var AName : string;
|
||||
const ATypeInfo : PTypeInfo
|
||||
);
|
||||
var
|
||||
buffer : string;
|
||||
begin
|
||||
buffer := '';
|
||||
AStore.Get(TypeInfo(string),AName,buffer);
|
||||
if ( AObject = nil ) then
|
||||
AObject := Create();
|
||||
TBase64StringRemotable(AObject).EncodedString := buffer;
|
||||
end;
|
||||
|
||||
procedure TBase64StringRemotable.Assign(Source : TPersistent);
|
||||
begin
|
||||
if Assigned(Source) then begin
|
||||
if Source.InheritsFrom(TBase64StringRemotable) then
|
||||
Self.BinaryData := TBase64StringRemotable(Source).BinaryData
|
||||
else
|
||||
inherited Assign(Source);
|
||||
end else begin
|
||||
BinaryData := '';
|
||||
end;
|
||||
end;
|
||||
|
||||
function TBase64StringRemotable.Equal(const ACompareTo : TBaseRemotable) : Boolean;
|
||||
begin
|
||||
Result := Assigned(ACompareTo) and
|
||||
ACompareTo.InheritsFrom(TBase64StringRemotable) and
|
||||
( TBase64StringRemotable(ACompareTo).BinaryData = Self.BinaryData );
|
||||
end;
|
||||
|
||||
{ TBase64StringExtRemotable }
|
||||
|
||||
function TBase64StringExtRemotable.GetEncodedString() : string;
|
||||
begin
|
||||
Result := Base64Encode(BinaryData);
|
||||
end;
|
||||
|
||||
procedure TBase64StringExtRemotable.SetEncodedString(const AValue : string);
|
||||
begin
|
||||
BinaryData := Base64Decode(AValue,[xoDecodeIgnoreIllegalChar]);
|
||||
end;
|
||||
|
||||
class procedure TBase64StringExtRemotable.SaveValue(AObject : TBaseRemotable; AStore : IFormatterBase);
|
||||
var
|
||||
s : string;
|
||||
begin
|
||||
s := (AObject as TBase64StringExtRemotable).EncodedString;
|
||||
AStore.PutScopeInnerValue(TypeInfo(string),s);
|
||||
end;
|
||||
|
||||
class procedure TBase64StringExtRemotable.LoadValue(var AObject : TObject; AStore : IFormatterBase);
|
||||
var
|
||||
s : string;
|
||||
begin
|
||||
s := '';
|
||||
AStore.GetScopeInnerValue(TypeInfo(string),s);
|
||||
(AObject as TBase64StringExtRemotable).EncodedString := s;
|
||||
end;
|
||||
|
||||
function TBase64StringExtRemotable.Equal(const ACompareTo : TBaseRemotable) : Boolean;
|
||||
begin
|
||||
Result := Assigned(ACompareTo) and
|
||||
ACompareTo.InheritsFrom(TBase64StringExtRemotable) and
|
||||
( TBase64StringExtRemotable(ACompareTo).BinaryData = Self.BinaryData );
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$IFDEF HAS_FORMAT_SETTINGS}
|
||||
{$IFDEF FPC}
|
||||
|
175
wst/trunk/basex_encode.pas
Normal file
175
wst/trunk/basex_encode.pas
Normal file
@ -0,0 +1,175 @@
|
||||
{ This file is part of the Web Service Toolkit
|
||||
Copyright (c) 2006, 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.
|
||||
}
|
||||
{$INCLUDE wst_global.inc}
|
||||
{$RANGECHECKS OFF}
|
||||
unit basex_encode;
|
||||
|
||||
interface
|
||||
uses
|
||||
SysUtils, wst_types;
|
||||
|
||||
type
|
||||
|
||||
EBaseXException = class(Exception);
|
||||
EBase64Exception = class(EBaseXException);
|
||||
|
||||
TBaseXOption = ( xoDecodeIgnoreIllegalChar );
|
||||
TBaseXOptions = set of TBaseXOption;
|
||||
|
||||
function Base64Encode(const ALength : PtrInt; const AInBuffer) : string;overload;
|
||||
function Base64Encode(const AInBuffer : string) : string;overload;
|
||||
|
||||
function Base64Decode(const AInBuffer : string; const AOptions : TBaseXOptions = [xoDecodeIgnoreIllegalChar]) : string;
|
||||
|
||||
resourcestring
|
||||
s_InvalidEncodedData = 'Invalid encoded data.';
|
||||
s_IllegalChar = 'Illegal character for that encoding : %s.';
|
||||
|
||||
implementation
|
||||
|
||||
const
|
||||
Base64_CHAR_TABLE : array[0..63] of char = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
||||
IM = 255; INVALID_MARKER = IM;
|
||||
Base64_CHAR_INDEX_TABLE : array[Byte] of Byte = (
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,62,IM,IM,IM,63,
|
||||
52,53,54,55,56,57,58,59,60,61,IM,IM,IM,00,IM,IM,
|
||||
IM,00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,
|
||||
15,16,17,18,19,20,21,22,23,24,25,IM,IM,IM,IM,IM,
|
||||
IM,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
|
||||
41,42,43,44,45,46,47,48,49,50,51,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,
|
||||
IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM,IM
|
||||
);
|
||||
Base64_CHAR_SET = ['A'..'Z','a'..'z','0'..'9','+','/'];
|
||||
|
||||
function Base64Encode(const ALength : PtrInt; const AInBuffer) : string;
|
||||
var
|
||||
locBuffer : PByte;
|
||||
locCopied, locBlockCount, i, locAtualLen : PtrInt;
|
||||
locInQuantom : array[0..2] of Byte;
|
||||
locOutQuantom : array[0..3] of Char;
|
||||
begin
|
||||
Result := '';
|
||||
if ( ALength > 0 ) then begin
|
||||
locBuffer := @AInBuffer;
|
||||
locBlockCount := ALength div 3;
|
||||
SetLength(Result,(locBlockCount + 1 ) * 4);
|
||||
locAtualLen := 0;
|
||||
for i := 1 to locBlockCount do begin
|
||||
Move(locBuffer^,locInQuantom[0],3);
|
||||
Inc(locBuffer,3);
|
||||
locOutQuantom[0] := Base64_CHAR_TABLE[( locInQuantom[0] shr 2 )];
|
||||
locOutQuantom[1] := Base64_CHAR_TABLE[( ( locInQuantom[0] and 3 ) shl 4 ) or ( locInQuantom[1] shr 4 )];
|
||||
locOutQuantom[2] := Base64_CHAR_TABLE[( ( locInQuantom[1] and 15 ) shl 2 ) or ( locInQuantom[2] shr 6 )];
|
||||
locOutQuantom[3] := Base64_CHAR_TABLE[( locInQuantom[2] and 63 )];
|
||||
Move(locOutQuantom[0],Result[locAtualLen + 1],4);
|
||||
Inc(locAtualLen,4);
|
||||
end;
|
||||
locCopied := ALength mod 3;
|
||||
if ( locCopied > 0 ) then begin
|
||||
case locCopied of
|
||||
1 :
|
||||
begin
|
||||
Move(locBuffer^,locInQuantom[0],1);
|
||||
locInQuantom[1] := 0;
|
||||
locOutQuantom[0] := Base64_CHAR_TABLE[( locInQuantom[0] shr 2 )];
|
||||
locOutQuantom[1] := Base64_CHAR_TABLE[( ( locInQuantom[0] and 3 ) shl 4 ) or ( locInQuantom[1] shr 4 )];
|
||||
locOutQuantom[2] := '=';
|
||||
locOutQuantom[3] := '=';
|
||||
end;
|
||||
2 :
|
||||
begin
|
||||
Move(locBuffer^,locInQuantom[0],2);
|
||||
locInQuantom[2] := 0;
|
||||
locOutQuantom[0] := Base64_CHAR_TABLE[( locInQuantom[0] shr 2 )];
|
||||
locOutQuantom[1] := Base64_CHAR_TABLE[( ( locInQuantom[0] and 3 ) shl 4 ) or ( locInQuantom[1] shr 4 )];
|
||||
locOutQuantom[2] := Base64_CHAR_TABLE[( ( locInQuantom[1] and 15 ) shl 2 ) or ( locInQuantom[2] shr 6 )];
|
||||
locOutQuantom[3] := '=';
|
||||
end;
|
||||
end;
|
||||
Move(locOutQuantom[0],Result[locAtualLen + 1],4);
|
||||
Inc(locAtualLen,4);
|
||||
end;
|
||||
SetLength(Result,locAtualLen);
|
||||
end;
|
||||
end;
|
||||
|
||||
function Base64Encode(const AInBuffer : string) : string;
|
||||
begin
|
||||
if ( Length(AInBuffer) = 0 ) then
|
||||
Result := ''
|
||||
else
|
||||
Result := Base64Encode(Length(AInBuffer),AInBuffer[1]);
|
||||
end;
|
||||
|
||||
function Base64Decode(const AInBuffer : string; const AOptions : TBaseXOptions) : string;
|
||||
var
|
||||
locBuffer : PByte;
|
||||
locInLen, locInIndex, i, locPadded : PtrInt;
|
||||
locOutQuantom : array[0..2] of Byte;
|
||||
locInQuantom : array[0..3] of Byte;
|
||||
ok : Boolean;
|
||||
locAtualLen : PtrInt;
|
||||
locInValue : Byte;
|
||||
locFailOnIllegalChar : Boolean;
|
||||
begin
|
||||
if ( AInBuffer = '' ) then begin
|
||||
Result := '';
|
||||
end else begin
|
||||
locInIndex := 0;
|
||||
locAtualLen := 0;
|
||||
locPadded := 0;
|
||||
locInLen := Length(AInBuffer);
|
||||
SetLength(Result,locInLen);
|
||||
locBuffer := @(AInBuffer[1]);
|
||||
locFailOnIllegalChar := not ( xoDecodeIgnoreIllegalChar in AOptions );
|
||||
while ( locInIndex < locInLen ) do begin
|
||||
for i := 0 to 3 do begin
|
||||
ok := False;
|
||||
while ( locInIndex <= locInLen ) do begin
|
||||
locInValue := Base64_CHAR_INDEX_TABLE[locBuffer^];
|
||||
Inc(locBuffer);
|
||||
Inc(locInIndex);
|
||||
if ( locInValue <> INVALID_MARKER ) then begin
|
||||
locInQuantom[i] := locInValue;
|
||||
if ( locBuffer^ = Byte('=') ) then begin
|
||||
Inc(locPadded);
|
||||
end;
|
||||
ok := True;
|
||||
Break;
|
||||
end else begin
|
||||
if locFailOnIllegalChar then
|
||||
raise EBase64Exception.Create(s_InvalidEncodedData);
|
||||
end;
|
||||
end;
|
||||
if not ok then
|
||||
raise EBase64Exception.CreateFmt(s_IllegalChar,[Char(locBuffer^)]);
|
||||
end;
|
||||
locOutQuantom[0] := ( locInQuantom[0] shl 2 ) or ( locInQuantom[1] shr 4 );
|
||||
locOutQuantom[1] := ( locInQuantom[1] shl 4 ) or ( locInQuantom[2] shr 2 );
|
||||
locOutQuantom[2] := ( locInQuantom[2] shl 6 ) or ( locInQuantom[3] );
|
||||
Move(locOutQuantom[0],Result[locAtualLen + 1],3 - locPadded);
|
||||
Inc(locAtualLen,3 - locPadded);
|
||||
end;
|
||||
SetLength(Result,locAtualLen);
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
203
wst/trunk/json_formatter.pas
Normal file
203
wst/trunk/json_formatter.pas
Normal file
@ -0,0 +1,203 @@
|
||||
{
|
||||
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.
|
||||
}
|
||||
{$INCLUDE wst_global.inc}
|
||||
unit json_formatter;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, TypInfo,
|
||||
base_service_intf, service_intf, imp_utils,
|
||||
base_json_formatter, fpjson;
|
||||
|
||||
type
|
||||
|
||||
{$M+}
|
||||
|
||||
{ TJsonRpcFormatter }
|
||||
|
||||
TJsonRpcFormatter = class(TJsonRpcBaseFormatter,IFormatterClient)
|
||||
private
|
||||
FPropMngr : IPropertyManager;
|
||||
FCallProcedureName : string;
|
||||
FCallTarget : string;
|
||||
protected
|
||||
public
|
||||
function GetPropertyManager():IPropertyManager;
|
||||
|
||||
procedure BeginCall(
|
||||
const AProcName,
|
||||
ATarget : string;
|
||||
ACallContext : ICallContext
|
||||
);
|
||||
procedure EndCall();
|
||||
procedure BeginCallRead(ACallContext : ICallContext);
|
||||
|
||||
function GetCallProcedureName():string;
|
||||
function GetCallTarget():string;
|
||||
end;
|
||||
|
||||
{ TJsonRpcCallMaker }
|
||||
|
||||
TJsonRpcCallMaker = class(TSimpleFactoryItem,ICallMaker)
|
||||
Private
|
||||
FPropMngr : IPropertyManager;
|
||||
Public
|
||||
constructor Create();override;
|
||||
destructor Destroy();override;
|
||||
function GetPropertyManager():IPropertyManager;
|
||||
procedure MakeCall(
|
||||
ASerializer : IFormatterClient;
|
||||
ATransport : ITransport
|
||||
);
|
||||
End;
|
||||
|
||||
procedure RegisterJsonProtocol();
|
||||
|
||||
implementation
|
||||
|
||||
{ TJsonRpcFormatter }
|
||||
|
||||
function TJsonRpcFormatter.GetPropertyManager() : IPropertyManager;
|
||||
begin
|
||||
If Not Assigned(FPropMngr) Then
|
||||
FPropMngr := TPublishedPropertyManager.Create(Self);
|
||||
Result := FPropMngr;
|
||||
end;
|
||||
|
||||
procedure TJsonRpcFormatter.BeginCall(
|
||||
const AProcName, ATarget : string;
|
||||
ACallContext : ICallContext
|
||||
);
|
||||
begin
|
||||
FCallProcedureName := AProcName;
|
||||
FCallTarget := ATarget;
|
||||
|
||||
BeginObject('',Nil);
|
||||
Put(s_json_method,TypeInfo(string),FCallProcedureName);
|
||||
BeginArray(s_json_params,Nil,nil,[0,0],asScoped);
|
||||
end;
|
||||
|
||||
procedure TJsonRpcFormatter.EndCall();
|
||||
begin
|
||||
EndScope(); // params
|
||||
EndScope(); // Root object
|
||||
end;
|
||||
|
||||
procedure TJsonRpcFormatter.BeginCallRead(ACallContext : ICallContext);
|
||||
Var
|
||||
errCode, errMsg : string;
|
||||
e : EJsonRpcException;
|
||||
elt : TJSONData;
|
||||
remoteErr : TJSONObject;
|
||||
i : PtrInt;
|
||||
begin
|
||||
ClearStack();
|
||||
PushStack(GetRootData(),stObject);
|
||||
elt := GetRootData().Elements[s_json_error];
|
||||
if Assigned(elt) and elt.InheritsFrom(TJSONObject) then begin
|
||||
remoteErr := TJSONObject(elt);
|
||||
i := remoteErr.IndexOfName(s_json_code);
|
||||
if ( i > -1 ) then
|
||||
errCode := remoteErr.Items[i].AsString
|
||||
else
|
||||
errCode := '';
|
||||
i := remoteErr.IndexOfName(s_json_message);
|
||||
if ( i > -1 ) then
|
||||
errMsg := remoteErr.Items[i].AsString
|
||||
else
|
||||
errMsg := '';
|
||||
e := EJsonRpcException.Create(errMsg);
|
||||
e.FaultCode := errCode;
|
||||
e.FaultString := errMsg;
|
||||
raise e;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TJsonRpcFormatter.GetCallProcedureName() : string;
|
||||
begin
|
||||
Result := FCallProcedureName;
|
||||
end;
|
||||
|
||||
function TJsonRpcFormatter.GetCallTarget() : string;
|
||||
begin
|
||||
Result := FCallTarget;
|
||||
end;
|
||||
|
||||
{ TJsonRpcCallMaker }
|
||||
|
||||
constructor TJsonRpcCallMaker.Create();
|
||||
begin
|
||||
FPropMngr := TPublishedPropertyManager.Create(Self);
|
||||
end;
|
||||
|
||||
destructor TJsonRpcCallMaker.Destroy();
|
||||
begin
|
||||
FPropMngr := Nil;
|
||||
inherited Destroy();
|
||||
end;
|
||||
|
||||
function TJsonRpcCallMaker.GetPropertyManager() : IPropertyManager;
|
||||
begin
|
||||
Result:= FPropMngr;
|
||||
end;
|
||||
|
||||
procedure TJsonRpcCallMaker.MakeCall(
|
||||
ASerializer : IFormatterClient;
|
||||
ATransport : ITransport
|
||||
);
|
||||
var
|
||||
rqt, rsps : TMemoryStream;
|
||||
propMngr : IPropertyManager;
|
||||
begin
|
||||
Assert(Assigned(ASerializer));
|
||||
Assert(Assigned(ATransport));
|
||||
propMngr := ATransport.GetPropertyManager();
|
||||
propMngr.SetProperty(
|
||||
s_json_ContentType,
|
||||
s_json
|
||||
);
|
||||
propMngr.SetProperty(
|
||||
sFORMAT,
|
||||
s_json
|
||||
);
|
||||
rsps := Nil;
|
||||
rqt := TMemoryStream.Create();
|
||||
Try
|
||||
rsps := TMemoryStream.Create();
|
||||
ASerializer.SaveToStream(rqt);
|
||||
rqt.Position := 0;
|
||||
ATransport.SendAndReceive(rqt,rsps);
|
||||
rqt.Clear();
|
||||
rsps.Position := 0;
|
||||
ASerializer.Clear();
|
||||
ASerializer.LoadFromStream(rsps);
|
||||
Finally
|
||||
rsps.Free();
|
||||
rqt.Free();
|
||||
End;
|
||||
end;
|
||||
|
||||
procedure RegisterJsonProtocol();
|
||||
begin
|
||||
GetFormaterRegistry().Register(
|
||||
s_json,
|
||||
TSimpleItemFactory.Create(TJsonRpcFormatter) as IItemFactory,
|
||||
TSimpleItemFactory.Create(TJsonRpcCallMaker) as IItemFactory
|
||||
);
|
||||
end;
|
||||
|
||||
Initialization
|
||||
RegisterJsonProtocol();
|
||||
|
||||
end.
|
@ -124,6 +124,10 @@ begin
|
||||
SetLength(strBuff,ARequest.Size);
|
||||
ARequest.Position := 0;
|
||||
ARequest.Read(strBuff[1],Length(strBuff));
|
||||
{$IFDEF WST_DBG}
|
||||
if IsConsole then
|
||||
WriteLn(strBuff);
|
||||
{$ENDIF WST_DBG}
|
||||
wrtr.WriteStr(strBuff);
|
||||
buffStream.Position := 0;
|
||||
wrtr.WriteInt32S(buffStream.Size-4);
|
||||
@ -145,8 +149,8 @@ begin
|
||||
AResponse.Read(s[1],AResponse.Size);
|
||||
if IsConsole then
|
||||
WriteLn(s)
|
||||
else
|
||||
ShowMessage(s);
|
||||
{else
|
||||
ShowMessage(s);}
|
||||
{$ENDIF WST_DBG}
|
||||
finally
|
||||
buffStream.Free();
|
||||
|
@ -2,7 +2,7 @@
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<PathDelim Value="\"/>
|
||||
<Version Value="5"/>
|
||||
<Version Value="6"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
||||
@ -12,7 +12,7 @@
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value=".\"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="7"/>
|
||||
<ActiveEditorIndexAtStart Value="6"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@ -58,7 +58,7 @@
|
||||
<UnitName Value="base_service_intf"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="63"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit2>
|
||||
@ -67,7 +67,7 @@
|
||||
<UnitName Value="metadata_wsdl"/>
|
||||
<CursorPos X="80" Y="80"/>
|
||||
<TopLine Value="66"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="64"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit3>
|
||||
@ -83,7 +83,7 @@
|
||||
<UnitName Value="user_service_intf_imp"/>
|
||||
<CursorPos X="1" Y="17"/>
|
||||
<TopLine Value="44"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="61"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit5>
|
||||
@ -92,7 +92,7 @@
|
||||
<UnitName Value="user_service_intf_binder"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="47"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit6>
|
||||
@ -102,7 +102,7 @@
|
||||
<UnitName Value="user_service_intf"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="83"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit7>
|
||||
@ -111,7 +111,7 @@
|
||||
<UnitName Value="metadata_repository"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="7"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="64"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit8>
|
||||
@ -127,7 +127,7 @@
|
||||
<UnitName Value="server_service_intf"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="63"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit10>
|
||||
@ -339,7 +339,7 @@
|
||||
<UnitName Value="user_service_intf_proxy"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="28"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit42>
|
||||
@ -441,7 +441,7 @@
|
||||
<UnitName Value="indy_tcp_server"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="31"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit55>
|
||||
@ -575,9 +575,7 @@
|
||||
<UnitName Value="user_service_intf_proxy"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit74>
|
||||
<Unit75>
|
||||
<Filename Value="user_service_intf_binder.pas"/>
|
||||
@ -587,12 +585,7 @@
|
||||
<UsageCount Value="10"/>
|
||||
</Unit75>
|
||||
</Units>
|
||||
<JumpHistory Count="1" HistoryIndex="0">
|
||||
<Position1>
|
||||
<Filename Value="..\user_service_intf_imp.pas"/>
|
||||
<Caret Line="51" Column="60" TopLine="32"/>
|
||||
</Position1>
|
||||
</JumpHistory>
|
||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
|
@ -2,12 +2,12 @@
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<PathDelim Value="\"/>
|
||||
<Version Value="5"/>
|
||||
<Version Value="6"/>
|
||||
<General>
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value=".\"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="4"/>
|
||||
<ActiveEditorIndexAtStart Value="3"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@ -25,13 +25,13 @@
|
||||
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<Units Count="9">
|
||||
<Units Count="13">
|
||||
<Unit0>
|
||||
<Filename Value="lib_server.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="lib_server"/>
|
||||
<CursorPos X="49" Y="35"/>
|
||||
<TopLine Value="7"/>
|
||||
<CursorPos X="19" Y="22"/>
|
||||
<TopLine Value="19"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="28"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -41,7 +41,7 @@
|
||||
<UnitName Value="library_server_intf"/>
|
||||
<CursorPos X="32" Y="91"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
@ -50,7 +50,7 @@
|
||||
<UnitName Value="user_service_intf_imp"/>
|
||||
<CursorPos X="43" Y="179"/>
|
||||
<TopLine Value="157"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit2>
|
||||
@ -59,7 +59,7 @@
|
||||
<UnitName Value="rtti_filters"/>
|
||||
<CursorPos X="53" Y="43"/>
|
||||
<TopLine Value="184"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit3>
|
||||
@ -67,26 +67,26 @@
|
||||
<Filename Value="..\user_service_intf_binder.pas"/>
|
||||
<UnitName Value="user_service_intf_binder"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="64"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<UnitName Value="base_service_intf"/>
|
||||
<CursorPos X="52" Y="4125"/>
|
||||
<TopLine Value="4118"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<CursorPos X="3" Y="133"/>
|
||||
<TopLine Value="119"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="..\..\semaphore.pas"/>
|
||||
<UnitName Value="semaphore"/>
|
||||
<CursorPos X="1" Y="140"/>
|
||||
<TopLine Value="111"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<CursorPos X="1" Y="137"/>
|
||||
<TopLine Value="113"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit6>
|
||||
@ -95,7 +95,7 @@
|
||||
<UnitName Value="cursor_intf"/>
|
||||
<CursorPos X="2" Y="13"/>
|
||||
<TopLine Value="34"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit7>
|
||||
@ -106,6 +106,42 @@
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit8>
|
||||
<Unit9>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<UnitName Value="server_service_json"/>
|
||||
<CursorPos X="104" Y="54"/>
|
||||
<TopLine Value="34"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="..\..\base_json_formatter.pas"/>
|
||||
<UnitName Value="base_json_formatter"/>
|
||||
<CursorPos X="48" Y="177"/>
|
||||
<TopLine Value="163"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit10>
|
||||
<Unit11>
|
||||
<Filename Value="..\..\server_service_soap.pas"/>
|
||||
<UnitName Value="server_service_soap"/>
|
||||
<CursorPos X="95" Y="200"/>
|
||||
<TopLine Value="177"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
<UnitName Value="base_soap_formatter"/>
|
||||
<CursorPos X="57" Y="129"/>
|
||||
<TopLine Value="115"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit12>
|
||||
</Units>
|
||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||
</ProjectOptions>
|
||||
|
@ -19,7 +19,7 @@ uses
|
||||
|
||||
base_service_intf,
|
||||
server_service_intf,
|
||||
server_service_soap, server_binary_formatter, server_service_xmlrpc,
|
||||
server_service_soap, server_binary_formatter, server_service_xmlrpc, server_service_json,
|
||||
metadata_repository, metadata_wsdl,
|
||||
metadata_service, metadata_service_binder, metadata_service_imp,
|
||||
library_base_intf, library_server_intf,
|
||||
@ -36,6 +36,7 @@ begin
|
||||
Server_service_RegisterBinaryFormat();
|
||||
Server_service_RegisterSoapFormat();
|
||||
Server_service_RegisterXmlRpcFormat();
|
||||
Server_service_RegisterJsonFormat();
|
||||
|
||||
RegisterUserServiceImplementationFactory();
|
||||
Server_service_RegisterUserServiceService();
|
||||
|
@ -2,7 +2,7 @@
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<PathDelim Value="\"/>
|
||||
<Version Value="5"/>
|
||||
<Version Value="6"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
||||
@ -12,7 +12,7 @@
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value=".\"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="10"/>
|
||||
<ActiveEditorIndexAtStart Value="2"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@ -30,13 +30,13 @@
|
||||
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<Units Count="60">
|
||||
<Units Count="65">
|
||||
<Unit0>
|
||||
<Filename Value="tcp_server.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="tcp_server"/>
|
||||
<CursorPos X="22" Y="37"/>
|
||||
<TopLine Value="27"/>
|
||||
<CursorPos X="25" Y="30"/>
|
||||
<TopLine Value="18"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="89"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -79,9 +79,7 @@
|
||||
<UnitName Value="server_service_soap"/>
|
||||
<CursorPos X="33" Y="21"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="31"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit6>
|
||||
<Unit7>
|
||||
<Filename Value="..\..\server_binary_formatter.pas"/>
|
||||
@ -122,9 +120,9 @@
|
||||
<Unit12>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<UnitName Value="base_service_intf"/>
|
||||
<CursorPos X="13" Y="1199"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<CursorPos X="1" Y="2470"/>
|
||||
<TopLine Value="2456"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="33"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="19" Y="545" ID="0"/>
|
||||
@ -148,9 +146,11 @@
|
||||
<Unit15>
|
||||
<Filename Value="..\user_service_intf_binder.pas"/>
|
||||
<UnitName Value="user_service_intf_binder"/>
|
||||
<CursorPos X="48" Y="34"/>
|
||||
<TopLine Value="11"/>
|
||||
<CursorPos X="1" Y="82"/>
|
||||
<TopLine Value="68"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="39"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit15>
|
||||
<Unit16>
|
||||
<Filename Value="..\user_service_intf.wst"/>
|
||||
@ -212,9 +212,9 @@
|
||||
<Unit25>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<UnitName Value="server_service_intf"/>
|
||||
<CursorPos X="5" Y="18"/>
|
||||
<TopLine Value="72"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<CursorPos X="1" Y="500"/>
|
||||
<TopLine Value="486"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="17"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit25>
|
||||
@ -227,9 +227,9 @@
|
||||
<Unit27>
|
||||
<Filename Value="..\user_service_intf_imp.pas"/>
|
||||
<UnitName Value="user_service_intf_imp"/>
|
||||
<CursorPos X="60" Y="51"/>
|
||||
<TopLine Value="28"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<CursorPos X="1" Y="212"/>
|
||||
<TopLine Value="198"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="41"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit27>
|
||||
@ -245,7 +245,7 @@
|
||||
<UnitName Value="base_soap_formatter"/>
|
||||
<CursorPos X="24" Y="967"/>
|
||||
<TopLine Value="325"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit29>
|
||||
@ -293,18 +293,20 @@
|
||||
<Unit36>
|
||||
<Filename Value="..\..\synapse_tcp_server.pas"/>
|
||||
<UnitName Value="synapse_tcp_server"/>
|
||||
<CursorPos X="35" Y="92"/>
|
||||
<TopLine Value="74"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="50"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="21"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit36>
|
||||
<Unit37>
|
||||
<Filename Value="..\..\semaphore.pas"/>
|
||||
<UnitName Value="semaphore"/>
|
||||
<CursorPos X="1" Y="140"/>
|
||||
<TopLine Value="30"/>
|
||||
<CursorPos X="5" Y="119"/>
|
||||
<TopLine Value="113"/>
|
||||
<EditorIndex Value="14"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit37>
|
||||
<Unit38>
|
||||
<Filename Value="..\..\wst.inc"/>
|
||||
@ -337,7 +339,7 @@
|
||||
<UnitName Value="server_service_xmlrpc"/>
|
||||
<CursorPos X="26" Y="57"/>
|
||||
<TopLine Value="21"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="40"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit42>
|
||||
@ -372,7 +374,7 @@
|
||||
<UnitName Value="server_listener"/>
|
||||
<CursorPos X="21" Y="15"/>
|
||||
<TopLine Value="6"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit47>
|
||||
@ -443,7 +445,7 @@
|
||||
<UnitName Value="imp_utils"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="10"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit57>
|
||||
@ -458,12 +460,174 @@
|
||||
<UnitName Value="config_objects"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit59>
|
||||
<Unit60>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<UnitName Value="server_service_json"/>
|
||||
<CursorPos X="1" Y="120"/>
|
||||
<TopLine Value="2"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit59>
|
||||
</Unit60>
|
||||
<Unit61>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\others_package\synapse\blcksock.pas"/>
|
||||
<UnitName Value="blcksock"/>
|
||||
<CursorPos X="1" Y="2407"/>
|
||||
<TopLine Value="2393"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit61>
|
||||
<Unit62>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\packages\fcl-json\src\fpjson.pp"/>
|
||||
<UnitName Value="fpjson"/>
|
||||
<CursorPos X="30" Y="1324"/>
|
||||
<TopLine Value="1323"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit62>
|
||||
<Unit63>
|
||||
<Filename Value="..\..\base_json_formatter.pas"/>
|
||||
<UnitName Value="base_json_formatter"/>
|
||||
<CursorPos X="1" Y="1073"/>
|
||||
<TopLine Value="1059"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit63>
|
||||
<Unit64>
|
||||
<Filename Value="..\..\server_service_imputils.pas"/>
|
||||
<UnitName Value="server_service_imputils"/>
|
||||
<CursorPos X="1" Y="88"/>
|
||||
<TopLine Value="74"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit64>
|
||||
</Units>
|
||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="..\user_service_intf_imp.pas"/>
|
||||
<Caret Line="211" Column="1" TopLine="197"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="..\user_service_intf_imp.pas"/>
|
||||
<Caret Line="212" Column="1" TopLine="198"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="..\user_service_intf_binder.pas"/>
|
||||
<Caret Line="80" Column="1" TopLine="66"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<Caret Line="792" Column="1" TopLine="765"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<Caret Line="686" Column="1" TopLine="672"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<Caret Line="687" Column="1" TopLine="673"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<Caret Line="693" Column="1" TopLine="679"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<Caret Line="695" Column="1" TopLine="681"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="..\user_service_intf_binder.pas"/>
|
||||
<Caret Line="82" Column="1" TopLine="68"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<Caret Line="479" Column="1" TopLine="465"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="5386" Column="1" TopLine="5359"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="2460" Column="1" TopLine="2446"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="2461" Column="1" TopLine="2447"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="2462" Column="1" TopLine="2448"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="2463" Column="1" TopLine="2449"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="2470" Column="1" TopLine="2456"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<Caret Line="498" Column="1" TopLine="484"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="..\..\server_service_imputils.pas"/>
|
||||
<Caret Line="108" Column="1" TopLine="86"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="..\..\server_service_imputils.pas"/>
|
||||
<Caret Line="86" Column="1" TopLine="72"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="..\..\server_service_imputils.pas"/>
|
||||
<Caret Line="87" Column="1" TopLine="73"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="..\..\server_service_imputils.pas"/>
|
||||
<Caret Line="88" Column="1" TopLine="74"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<Caret Line="499" Column="1" TopLine="485"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<Caret Line="500" Column="1" TopLine="486"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<Caret Line="173" Column="1" TopLine="149"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="..\..\base_json_formatter.pas"/>
|
||||
<Caret Line="1071" Column="1" TopLine="1057"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="..\..\base_json_formatter.pas"/>
|
||||
<Caret Line="1072" Column="1" TopLine="1058"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="..\..\base_json_formatter.pas"/>
|
||||
<Caret Line="1073" Column="1" TopLine="1059"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<Caret Line="109" Column="57" TopLine="89"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<Caret Line="120" Column="1" TopLine="106"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="tcp_server.pas"/>
|
||||
<Caret Line="30" Column="25" TopLine="18"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
|
@ -24,7 +24,7 @@ uses
|
||||
{$ENDIF}{$ENDIF}
|
||||
{$ENDIF}
|
||||
Classes, SysUtils,
|
||||
base_service_intf, server_service_soap,
|
||||
base_service_intf, server_service_soap, server_service_json,
|
||||
base_binary_formatter, server_binary_formatter,
|
||||
metadata_service, metadata_service_imp, metadata_service_binder,
|
||||
server_listener , synapse_tcp_server,
|
||||
@ -39,6 +39,7 @@ begin
|
||||
Server_service_RegisterBinaryFormat();
|
||||
Server_service_RegisterSoapFormat();
|
||||
Server_service_RegisterXmlRpcFormat();
|
||||
Server_service_RegisterJsonFormat();
|
||||
|
||||
RegisterWSTMetadataServiceImplementationFactory();
|
||||
//Server_service_RegisterWSTMetadataServiceService();
|
||||
|
@ -2,7 +2,7 @@
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<PathDelim Value="\"/>
|
||||
<Version Value="5"/>
|
||||
<Version Value="6"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
||||
@ -12,7 +12,7 @@
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value=".\"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="0"/>
|
||||
<ActiveEditorIndexAtStart Value="3"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@ -30,13 +30,13 @@
|
||||
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<Units Count="45">
|
||||
<Units Count="48">
|
||||
<Unit0>
|
||||
<Filename Value="user_client_console.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="user_client_console"/>
|
||||
<CursorPos X="44" Y="147"/>
|
||||
<TopLine Value="136"/>
|
||||
<CursorPos X="73" Y="8"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="82"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -44,27 +44,27 @@
|
||||
<Unit1>
|
||||
<Filename Value="..\user_service_intf_proxy.pas"/>
|
||||
<UnitName Value="user_service_intf_proxy"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<CursorPos X="1" Y="65"/>
|
||||
<TopLine Value="51"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="33"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="..\..\synapse_tcp_protocol.pas"/>
|
||||
<UnitName Value="synapse_tcp_protocol"/>
|
||||
<CursorPos X="1" Y="23"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="15"/>
|
||||
<EditorIndex Value="17"/>
|
||||
<UsageCount Value="40"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="..\..\service_intf.pas"/>
|
||||
<UnitName Value="service_intf"/>
|
||||
<CursorPos X="51" Y="34"/>
|
||||
<TopLine Value="21"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<CursorPos X="1" Y="251"/>
|
||||
<TopLine Value="237"/>
|
||||
<EditorIndex Value="15"/>
|
||||
<UsageCount Value="36"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit3>
|
||||
@ -73,7 +73,7 @@
|
||||
<UnitName Value="user_service_intf"/>
|
||||
<CursorPos X="53" Y="11"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="32"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit4>
|
||||
@ -94,9 +94,9 @@
|
||||
<Unit7>
|
||||
<Filename Value="..\..\library_protocol.pas"/>
|
||||
<UnitName Value="library_protocol"/>
|
||||
<CursorPos X="1" Y="137"/>
|
||||
<TopLine Value="19"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<CursorPos X="5" Y="165"/>
|
||||
<TopLine Value="138"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="28"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit7>
|
||||
@ -142,7 +142,7 @@
|
||||
<UnitName Value="synapse_http_protocol"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="13"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<EditorIndex Value="14"/>
|
||||
<UsageCount Value="22"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit14>
|
||||
@ -162,9 +162,9 @@
|
||||
<Unit17>
|
||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
||||
<UnitName Value="library_imp_utils"/>
|
||||
<CursorPos X="1" Y="187"/>
|
||||
<TopLine Value="170"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="89"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit17>
|
||||
@ -177,9 +177,9 @@
|
||||
<Unit19>
|
||||
<Filename Value="..\..\semaphore.pas"/>
|
||||
<UnitName Value="semaphore"/>
|
||||
<CursorPos X="1" Y="140"/>
|
||||
<TopLine Value="110"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<CursorPos X="1" Y="137"/>
|
||||
<TopLine Value="113"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit19>
|
||||
@ -203,7 +203,7 @@
|
||||
<UnitName Value="binary_formatter"/>
|
||||
<CursorPos X="20" Y="21"/>
|
||||
<TopLine Value="12"/>
|
||||
<EditorIndex Value="14"/>
|
||||
<EditorIndex Value="16"/>
|
||||
<UsageCount Value="33"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit22>
|
||||
@ -308,7 +308,7 @@
|
||||
<UnitName Value="indy_http_protocol"/>
|
||||
<CursorPos X="1" Y="16"/>
|
||||
<TopLine Value="109"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<UsageCount Value="18"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit37>
|
||||
@ -322,18 +322,16 @@
|
||||
<Unit39>
|
||||
<Filename Value="..\..\ics_tcp_protocol.pas"/>
|
||||
<UnitName Value="ics_tcp_protocol"/>
|
||||
<CursorPos X="5" Y="41"/>
|
||||
<TopLine Value="26"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="17"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit39>
|
||||
<Unit40>
|
||||
<Filename Value="..\..\ics_http_protocol.pas"/>
|
||||
<UnitName Value="ics_http_protocol"/>
|
||||
<CursorPos X="1" Y="25"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="17"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit40>
|
||||
@ -342,7 +340,7 @@
|
||||
<UnitName Value="same_process_protocol"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="13"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="17"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit41>
|
||||
@ -359,9 +357,9 @@
|
||||
<Unit43>
|
||||
<Filename Value="..\..\binary_streamer.pas"/>
|
||||
<UnitName Value="binary_streamer"/>
|
||||
<CursorPos X="21" Y="15"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<CursorPos X="1" Y="270"/>
|
||||
<TopLine Value="256"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit43>
|
||||
@ -370,12 +368,51 @@
|
||||
<UnitName Value="library_base_intf"/>
|
||||
<CursorPos X="25" Y="17"/>
|
||||
<TopLine Value="5"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit44>
|
||||
<Unit45>
|
||||
<Filename Value="..\..\json_formatter.pas"/>
|
||||
<UnitName Value="json_formatter"/>
|
||||
<CursorPos X="1" Y="123"/>
|
||||
<TopLine Value="109"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit45>
|
||||
<Unit46>
|
||||
<Filename Value="..\..\base_json_formatter.pas"/>
|
||||
<UnitName Value="base_json_formatter"/>
|
||||
<CursorPos X="69" Y="1105"/>
|
||||
<TopLine Value="1088"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit46>
|
||||
<Unit47>
|
||||
<Filename Value="..\..\wst_global.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="4"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit47>
|
||||
</Units>
|
||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||
<JumpHistory Count="3" HistoryIndex="2">
|
||||
<Position1>
|
||||
<Filename Value="..\..\library_protocol.pas"/>
|
||||
<Caret Line="120" Column="8" TopLine="117"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="..\..\library_protocol.pas"/>
|
||||
<Caret Line="16" Column="3" TopLine="1"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="..\..\library_protocol.pas"/>
|
||||
<Caret Line="1" Column="2" TopLine="1"/>
|
||||
</Position3>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
@ -392,7 +429,7 @@
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<UseLineInfoUnit Value="False"/>
|
||||
<GenerateDebugInfo Value="True"/>
|
||||
</Debugging>
|
||||
<LinkSmart Value="True"/>
|
||||
</Linking>
|
||||
@ -401,7 +438,7 @@
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<BreakPoints Count="4">
|
||||
<BreakPoints Count="6">
|
||||
<Item1>
|
||||
<Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||
<Line Value="230"/>
|
||||
@ -418,6 +455,14 @@
|
||||
<Source Value="..\..\ws_helper\wsdl2pas_imp.pas"/>
|
||||
<Line Value="606"/>
|
||||
</Item4>
|
||||
<Item5>
|
||||
<Source Value="..\..\json_formatter.pas"/>
|
||||
<Line Value="184"/>
|
||||
</Item5>
|
||||
<Item6>
|
||||
<Source Value="..\user_service_intf_proxy.pas"/>
|
||||
<Line Value="65"/>
|
||||
</Item6>
|
||||
</BreakPoints>
|
||||
<Watches Count="2">
|
||||
<Item1>
|
||||
|
@ -5,8 +5,8 @@ program user_client_console;
|
||||
uses
|
||||
Classes, SysUtils, TypInfo, {$IFDEF WINDOWS}ActiveX,{$ENDIF}
|
||||
user_service_intf_proxy,
|
||||
same_process_protocol, synapse_tcp_protocol, synapse_http_protocol, library_protocol, ics_tcp_protocol, ics_http_protocol,
|
||||
soap_formatter, binary_formatter,
|
||||
same_process_protocol, synapse_tcp_protocol, synapse_http_protocol, library_protocol,
|
||||
soap_formatter, binary_formatter, json_formatter,
|
||||
user_service_intf, xmlrpc_formatter;
|
||||
|
||||
var
|
||||
@ -135,19 +135,20 @@ end;
|
||||
|
||||
type
|
||||
TTransportType = ( ttLibrary, ttTCP, ttHTTP );
|
||||
TFormatType = ( ftBinary, ftSoap, ftXmlRPC );
|
||||
TFormatType = ( ftBinary, ftSoap, ftXmlRPC, ftJSON );
|
||||
var
|
||||
TransportType : TTransportType;
|
||||
FormatValue : TFormatType;
|
||||
procedure CreateProxy();
|
||||
const ADDRESS_MAP : array[TTransportType] of string = (
|
||||
'LIB:FileName=..\library_server\lib_server.dll;target=UserService',
|
||||
//'LIB:FileName=C:\Programmes\D7\etatcivil\partages\wst\samples\library_server\lib_server.dll;target=UserService',
|
||||
//'TCP:Address=172.16.82.31;Port=1234;target=UserService',
|
||||
'TCP:Address=127.0.0.1;Port=1234;target=UserService',
|
||||
'http:Address=http://127.0.0.1:8888/wst/services/lib_server/UserService'
|
||||
//'http:Address=http://127.0.0.1:8000/services/UserService'
|
||||
);
|
||||
FORMAT_MAP : array[TFormatType] of string =( 'binary', 'soap', 'xmlrpc' );
|
||||
FORMAT_MAP : array[TFormatType] of string =( 'binary', 'soap', 'xmlrpc', 'json' );
|
||||
var
|
||||
buff : string;
|
||||
begin
|
||||
@ -196,6 +197,7 @@ begin
|
||||
WriteLn();
|
||||
WriteLn('Select a messaging format : ');
|
||||
WriteLn(' B : binary ( binary_formatter.pas )');
|
||||
WriteLn(' J : JSON ( json_formatter.pas )');
|
||||
WriteLn(' S : soap ( soap_formatter.pas )');
|
||||
WriteLn(' X : XmlRpc ( xmlrpc_formatter.pas )');
|
||||
WriteLn();
|
||||
@ -203,9 +205,10 @@ begin
|
||||
while True do begin
|
||||
ReadLn(buff);
|
||||
buff := UpperCase(Trim(buff));
|
||||
if ( Length(buff) > 0 ) and ( buff[1] in ['B','S', 'X'] ) then begin
|
||||
if ( Length(buff) > 0 ) and ( buff[1] in ['B', 'J', 'S', 'X'] ) then begin
|
||||
case buff[1] of
|
||||
'B' : FormatValue := ftBinary;
|
||||
'J' : FormatValue := ftJSON;
|
||||
'S' : FormatValue := ftSoap;
|
||||
'X' : FormatValue := ftXmlRPC;
|
||||
end;
|
||||
|
@ -2,7 +2,7 @@
|
||||
This unit has been produced by ws_helper.
|
||||
Input unit name : "user_service_intf".
|
||||
This unit name : "user_service_intf".
|
||||
Date : "26/08/2007 01:03:09".
|
||||
Date : "29/12/2007 00:43:35".
|
||||
}
|
||||
unit user_service_intf;
|
||||
{$IFDEF FPC}
|
||||
|
@ -2,7 +2,7 @@
|
||||
This unit has been produced by ws_helper.
|
||||
Input unit name : "user_service_intf".
|
||||
This unit name : "user_service_intf_binder".
|
||||
Date : "26/08/2007 01:03:09".
|
||||
Date : "29/12/2007 00:43:35".
|
||||
}
|
||||
unit user_service_intf_binder;
|
||||
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
|
||||
|
@ -2,7 +2,7 @@
|
||||
This unit has been produced by ws_helper.
|
||||
Input unit name : "user_service_intf".
|
||||
This unit name : "user_service_intf_proxy".
|
||||
Date : "26/08/2007 01:03:09".
|
||||
Date : "29/12/2007 00:43:35".
|
||||
}
|
||||
|
||||
Unit user_service_intf_proxy;
|
||||
|
180
wst/trunk/server_service_json.pas
Normal file
180
wst/trunk/server_service_json.pas
Normal file
@ -0,0 +1,180 @@
|
||||
{
|
||||
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.
|
||||
}
|
||||
{$INCLUDE wst_global.inc}
|
||||
unit server_service_json;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, TypInfo,
|
||||
base_service_intf, server_service_intf,
|
||||
fpjson, base_json_formatter;
|
||||
|
||||
type
|
||||
|
||||
{ TJsonRpcFormatter }
|
||||
|
||||
TJsonRpcFormatter = class(TJsonRpcBaseFormatter,IFormatterBase,IFormatterResponse)
|
||||
Private
|
||||
FCallProcedureName : string;
|
||||
FCallTarget : string;
|
||||
FIDObject : TJSONData;
|
||||
Protected
|
||||
procedure BeginCallResponse(Const AProcName,ATarget:string);
|
||||
procedure EndCallResponse();
|
||||
procedure BeginCallRead(ACallContext : ICallContext);
|
||||
function GetCallProcedureName():String;
|
||||
function GetCallTarget():String;
|
||||
procedure BeginExceptionList(
|
||||
const AErrorCode : string;
|
||||
const AErrorMsg : string
|
||||
);
|
||||
procedure EndExceptionList();
|
||||
public
|
||||
destructor Destroy();override;
|
||||
end;
|
||||
|
||||
procedure Server_service_RegisterJsonFormat();
|
||||
|
||||
implementation
|
||||
uses jsonparser;
|
||||
|
||||
procedure Server_service_RegisterJsonFormat();
|
||||
begin
|
||||
GetFormatterRegistry().Register(s_json,s_json_ContentType,TSimpleItemFactory.Create(TJsonRpcFormatter) as IItemFactory);
|
||||
end;
|
||||
|
||||
function Clone(const AValue : TJSONData) : TJSONData;
|
||||
var
|
||||
locParser : TJSONParser;
|
||||
begin
|
||||
if Assigned(AValue) then begin
|
||||
case AValue.JSONType() of
|
||||
jtNumber :
|
||||
begin
|
||||
if ( TJSONNumber(AValue).NumberType() = ntInteger ) then
|
||||
Result := TJSONIntegerNumber.Create(AValue.AsInteger)
|
||||
else
|
||||
Result := TJSONFloatNumber.Create(AValue.AsFloat);
|
||||
end;
|
||||
jtString : Result := TJSONString.Create(AValue.AsString);
|
||||
jtBoolean : Result := TJSONBoolean.Create(AValue.AsBoolean);
|
||||
jtNull : Result := TJSONNull.Create();
|
||||
jtArray,
|
||||
jtObject :
|
||||
begin
|
||||
locParser := TJSONParser.Create(AValue.AsJSON);
|
||||
try
|
||||
Result := locParser.Parse();
|
||||
finally
|
||||
locParser.Free();
|
||||
end;
|
||||
end;
|
||||
else
|
||||
raise Exception.Create('Invalid JSON object type.');
|
||||
end;
|
||||
end else begin
|
||||
Result := nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TJsonRpcFormatter }
|
||||
|
||||
procedure TJsonRpcFormatter.BeginCallResponse(const AProcName, ATarget : string);
|
||||
begin
|
||||
Clear();
|
||||
BeginObject('',nil);
|
||||
end;
|
||||
|
||||
procedure TJsonRpcFormatter.EndCallResponse();
|
||||
var
|
||||
locRoot : TJSONObject;
|
||||
begin
|
||||
locRoot := GetRootData();
|
||||
locRoot.Elements[s_json_error] := TJSONNull.Create();
|
||||
if Assigned(FIDObject) then begin
|
||||
locRoot.Elements[s_json_id] := FIDObject;
|
||||
FIDObject := nil;
|
||||
end else begin
|
||||
locRoot.Elements[s_json_id] := TJSONNull.Create();
|
||||
end;
|
||||
EndScope();
|
||||
end;
|
||||
|
||||
procedure TJsonRpcFormatter.BeginCallRead(ACallContext : ICallContext);
|
||||
var
|
||||
nameBuffer, strBuffer : string;
|
||||
rootObj : TJSONObject;
|
||||
i : PtrInt;
|
||||
begin
|
||||
ClearStack();
|
||||
FreeAndNil(FIDObject);
|
||||
rootObj := GetRootData();
|
||||
PushStack(rootObj,stObject);
|
||||
nameBuffer := s_json_method;
|
||||
Get(TypeInfo(string),nameBuffer,FCallProcedureName);
|
||||
i := rootObj.IndexOfName(s_json_id);
|
||||
if ( i > -1 ) then
|
||||
FIDObject := Clone(rootObj);
|
||||
nameBuffer := s_json_params;
|
||||
BeginArrayRead(nameBuffer,nil,asScoped,'');
|
||||
end;
|
||||
|
||||
function TJsonRpcFormatter.GetCallProcedureName() : String;
|
||||
begin
|
||||
Result := FCallProcedureName;
|
||||
end;
|
||||
|
||||
function TJsonRpcFormatter.GetCallTarget() : String;
|
||||
begin
|
||||
Result := FCallTarget;
|
||||
end;
|
||||
|
||||
procedure TJsonRpcFormatter.BeginExceptionList(
|
||||
const AErrorCode : string;
|
||||
const AErrorMsg : string
|
||||
);
|
||||
var
|
||||
locRoot, locError : TJSONObject;
|
||||
begin
|
||||
Clear();
|
||||
BeginObject('',nil);
|
||||
|
||||
locRoot := GetRootData();
|
||||
locRoot.Elements[s_json_result] := TJSONNull.Create();
|
||||
locError := TJSONObject.Create();
|
||||
locRoot.Elements[s_json_error] := locError;
|
||||
locError.Add(s_json_name,'');
|
||||
locError.Add(s_json_code,StrToIntDef(AErrorCode,0));
|
||||
locError.Add(s_json_message,AErrorMsg);
|
||||
if Assigned(FIDObject) then begin
|
||||
locRoot.Elements[s_json_id] := FIDObject;
|
||||
FIDObject := nil;
|
||||
end else begin
|
||||
locRoot.Elements[s_json_id] := TJSONNull.Create();
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TJsonRpcFormatter.EndExceptionList();
|
||||
begin
|
||||
EndScope();
|
||||
end;
|
||||
|
||||
destructor TJsonRpcFormatter.Destroy();
|
||||
begin
|
||||
FreeAndNil(FIDObject);
|
||||
inherited Destroy();
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -11,7 +11,9 @@ uses
|
||||
test_support in '..\test_support.pas',
|
||||
test_utilities in '..\test_utilities.pas',
|
||||
testformatter_unit in '..\testformatter_unit.pas',
|
||||
base_service_intf in '..\..\..\base_service_intf.pas';
|
||||
base_service_intf in '..\..\..\base_service_intf.pas',
|
||||
basex_encode in '..\..\..\basex_encode.pas',
|
||||
test_basex_encode in '..\test_basex_encode.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
|
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0"?>
|
||||
<definitions name="wst_test"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:tns="library1"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<types>
|
||||
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:complexType name="TClassSampleType">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="intField" type="xsd:int">
|
||||
</xsd:attribute>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="TClassSampleTypeA">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:base64Binary">
|
||||
<xsd:attribute name="floatField" type="xsd:float">
|
||||
</xsd:attribute>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
|
||||
</xsd:schema>
|
||||
|
||||
</types>
|
||||
|
||||
|
||||
</definitions>
|
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:complexType name="TClassSampleType">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="intField" type="xsd:int">
|
||||
</xsd:attribute>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="TClassSampleTypeA">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:base64Binary">
|
||||
<xsd:attribute name="floatField" type="xsd:float">
|
||||
</xsd:attribute>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
|
||||
</xsd:schema>
|
159
wst/trunk/tests/test_suite/test_basex_encode.pas
Normal file
159
wst/trunk/tests/test_suite/test_basex_encode.pas
Normal file
@ -0,0 +1,159 @@
|
||||
{ This file is part of the Web Service Toolkit
|
||||
Copyright (c) 2006, 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.
|
||||
}
|
||||
{$INCLUDE wst_global.inc}
|
||||
unit test_basex_encode;
|
||||
|
||||
interface
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
{$IFDEF FPC}
|
||||
fpcunit, testregistry,
|
||||
{$ELSE}
|
||||
TestFrameWork,
|
||||
{$ENDIF}
|
||||
TypInfo,
|
||||
wst_types, basex_encode;
|
||||
|
||||
type
|
||||
|
||||
TTest_Base64 = class(TTestCase)
|
||||
protected
|
||||
procedure Check_Encode(const AIn, AExpect : string);
|
||||
procedure Check_Decode(const AIn, AExpect : string; const AOptions : TBaseXOptions = [xoDecodeIgnoreIllegalChar]);
|
||||
published
|
||||
procedure Encode_empty();
|
||||
procedure Encode_f();
|
||||
procedure Encode_fo();
|
||||
procedure Encode_foo();
|
||||
procedure Encode_foob();
|
||||
procedure Encode_fooba();
|
||||
procedure Encode_foobar();
|
||||
|
||||
procedure Decode_f();
|
||||
procedure Decode_fo();
|
||||
procedure Decode_foo();
|
||||
procedure Decode_foob();
|
||||
procedure Decode_fooba();
|
||||
procedure Decode_foobar();
|
||||
procedure Decode_illegal_char();
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TTest_Base64 }
|
||||
|
||||
procedure TTest_Base64.Check_Decode(const AIn, AExpect: string; const AOptions : TBaseXOptions);
|
||||
var
|
||||
locRes : string;
|
||||
begin
|
||||
locRes := Base64Decode(AIn,AOptions);
|
||||
CheckEquals(AExpect,locRes);
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Check_Encode(const AIn, AExpect: string);
|
||||
var
|
||||
locRes : string;
|
||||
begin
|
||||
locRes := Base64Encode(AIn);
|
||||
CheckEquals(AExpect,locRes);
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Decode_f();
|
||||
begin
|
||||
Check_Decode('Zg==','f');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Decode_fo();
|
||||
begin
|
||||
Check_Decode('Zm8=','fo');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Decode_foo();
|
||||
begin
|
||||
Check_Decode('Zm9v','foo');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Decode_foob();
|
||||
begin
|
||||
Check_Decode('Zm9vYg==','foob');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Decode_fooba();
|
||||
begin
|
||||
Check_Decode('Zm9vYmE=','fooba');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Decode_foobar();
|
||||
begin
|
||||
Check_Decode('Zm9vYmFy','foobar');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Decode_illegal_char();
|
||||
var
|
||||
ok : Boolean;
|
||||
begin
|
||||
ok := False;
|
||||
try
|
||||
Check_Decode('Zm9'#200'vY' + sLineBreak + 'm'#0'Fy','foobar',[]);
|
||||
except
|
||||
on e : EBase64Exception do
|
||||
ok := True;
|
||||
end;
|
||||
CheckEquals(True,ok);
|
||||
|
||||
Check_Decode('Zm9'#200'vY' + sLineBreak + 'm'#0'Fy','foobar',[xoDecodeIgnoreIllegalChar]);
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Encode_empty();
|
||||
begin
|
||||
Check_Encode('','');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Encode_f();
|
||||
begin
|
||||
Check_Encode('f','Zg==');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Encode_fo();
|
||||
begin
|
||||
Check_Encode('fo','Zm8=');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Encode_foo();
|
||||
begin
|
||||
Check_Encode('foo','Zm9v');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Encode_foob();
|
||||
begin
|
||||
Check_Encode('foob','Zm9vYg==');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Encode_fooba();
|
||||
begin
|
||||
Check_Encode('fooba','Zm9vYmE=');
|
||||
end;
|
||||
|
||||
procedure TTest_Base64.Encode_foobar();
|
||||
var
|
||||
a, b : string;
|
||||
begin
|
||||
a := 'foobar';
|
||||
b := 'Zm9vYmFy';
|
||||
Check_Encode(a,b);
|
||||
//Check_Encode('foobar','Zm9vYmFy');
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterTest('Encoding',TTest_Base64.Suite);
|
||||
|
||||
end.
|
@ -36,6 +36,7 @@ type
|
||||
|
||||
function LoadComplexType_Class_Schema() : TwstPasTreeContainer;virtual;abstract;
|
||||
function LoadComplexType_Class_Embedded_Schema() : TwstPasTreeContainer;virtual;abstract;
|
||||
function LoadComplexType_Class_Extend_Simple_Schema() : TwstPasTreeContainer;virtual;abstract;
|
||||
|
||||
function LoadComplexType_Record_Schema() : TwstPasTreeContainer;virtual;abstract;
|
||||
function LoadComplexType_Record_Embedded_Schema() : TwstPasTreeContainer;virtual;abstract;
|
||||
@ -51,6 +52,7 @@ type
|
||||
|
||||
procedure ComplexType_Class();
|
||||
procedure ComplexType_Class_Embedded();
|
||||
procedure ComplexType_Class_Extend_Simple_Schema();
|
||||
|
||||
procedure ComplexType_Record();
|
||||
procedure ComplexType_Record_Embedded();
|
||||
@ -73,6 +75,7 @@ type
|
||||
|
||||
function LoadComplexType_Class_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Class_Embedded_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Class_Extend_Simple_Schema() : TwstPasTreeContainer;override;
|
||||
|
||||
function LoadComplexType_Record_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Record_Embedded_Schema() : TwstPasTreeContainer;override;
|
||||
@ -95,6 +98,7 @@ type
|
||||
|
||||
function LoadComplexType_Class_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Class_Embedded_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Class_Extend_Simple_Schema() : TwstPasTreeContainer;override;
|
||||
|
||||
function LoadComplexType_Record_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Record_Embedded_Schema() : TwstPasTreeContainer;override;
|
||||
@ -113,6 +117,7 @@ const
|
||||
x_complexType_SampleArrayItemType = 'TArrayItemType';
|
||||
x_complexType_SampleDerivedType = 'TClassSampleDerivedType';
|
||||
x_complexType_SampleClassType = 'TClassSampleType';
|
||||
x_complexType_SampleClassTypeA = 'TClassSampleTypeA';
|
||||
x_complexType_SampleClassTypeAll = 'TClassSampleTypeAll';
|
||||
x_complexType_SampleClass = 'TClassSample';
|
||||
|
||||
@ -123,6 +128,7 @@ const
|
||||
x_complexType_array_sequence = 'complex_array_sequence';
|
||||
x_complexType_array_sequence_embedded = 'complex_array_sequence_embedded';
|
||||
x_complexType_class = 'complex_class';
|
||||
x_complexType_extend_simple = 'complex_class_extend_simple';
|
||||
x_complexType_class_embedded = 'complex_class_embedded';
|
||||
x_complexType_record = 'complex_record';
|
||||
x_complexType_record_embedded = 'complex_record_embedded';
|
||||
@ -544,6 +550,75 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTest_CustomXsdParser.ComplexType_Class_Extend_Simple_Schema();
|
||||
var
|
||||
tr : TwstPasTreeContainer;
|
||||
clsType : TPasClassType;
|
||||
|
||||
procedure CheckProperty(const AName,ATypeName : string; const AFieldType : TPropertyType);
|
||||
var
|
||||
prp : TPasProperty;
|
||||
begin
|
||||
prp := FindMember(clsType,AName) as TPasProperty;
|
||||
CheckNotNull(prp);
|
||||
CheckEquals(AName,prp.Name);
|
||||
CheckEquals(AName,tr.GetExternalName(prp));
|
||||
CheckNotNull(prp.VarType);
|
||||
CheckEquals(ATypeName,tr.GetExternalName(prp.VarType));
|
||||
CheckEquals(PropertyType_Att[AFieldType],tr.IsAttributeProperty(prp));
|
||||
end;
|
||||
|
||||
var
|
||||
mdl : TPasModule;
|
||||
ls : TList;
|
||||
elt : TPasElement;
|
||||
aliasType : TPasAliasType;
|
||||
i : Integer;
|
||||
prpLs : TList;
|
||||
begin
|
||||
prpLs := TList.Create();
|
||||
try
|
||||
tr := LoadComplexType_Class_Extend_Simple_Schema();
|
||||
|
||||
mdl := tr.FindModule(x_targetNamespace);
|
||||
CheckNotNull(mdl);
|
||||
CheckEquals(x_complexType_extend_simple,mdl.Name);
|
||||
CheckEquals(x_targetNamespace,tr.GetExternalName(mdl));
|
||||
ls := mdl.InterfaceSection.Declarations;
|
||||
CheckEquals(2,ls.Count);
|
||||
elt := tr.FindElement(x_complexType_SampleClassType);
|
||||
CheckNotNull(elt,x_complexType_SampleClassType);
|
||||
CheckEquals(x_complexType_SampleClassType,elt.Name);
|
||||
CheckEquals(x_complexType_SampleClassType,tr.GetExternalName(elt));
|
||||
CheckIs(elt,TPasClassType);
|
||||
clsType := elt as TPasClassType;
|
||||
prpLs.Clear();
|
||||
for i := 0 to Pred(clsType.Members.Count) do begin
|
||||
if TPasElement(clsType.Members[i]).InheritsFrom(TPasProperty) then
|
||||
prpLs.Add(clsType.Members[i]);
|
||||
end;
|
||||
CheckEquals(1,prpLs.Count);
|
||||
CheckProperty(x_intField,'int',ptAttribute);
|
||||
|
||||
|
||||
elt := tr.FindElement(x_complexType_SampleClassTypeA);
|
||||
CheckNotNull(elt,x_complexType_SampleClassTypeA);
|
||||
CheckEquals(x_complexType_SampleClassTypeA,elt.Name);
|
||||
CheckEquals(x_complexType_SampleClassTypeA,tr.GetExternalName(elt));
|
||||
CheckIs(elt,TPasClassType);
|
||||
clsType := elt as TPasClassType;
|
||||
prpLs.Clear();
|
||||
for i := 0 to Pred(clsType.Members.Count) do begin
|
||||
if TPasElement(clsType.Members[i]).InheritsFrom(TPasProperty) then
|
||||
prpLs.Add(clsType.Members[i]);
|
||||
end;
|
||||
CheckEquals(1,prpLs.Count);
|
||||
CheckProperty(x_floatField,'float',ptAttribute);
|
||||
finally
|
||||
FreeAndNil(prpLs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTest_CustomXsdParser.ComplexType_Record();
|
||||
var
|
||||
tr : TwstPasTreeContainer;
|
||||
@ -950,6 +1025,11 @@ begin
|
||||
Result := ParseDoc(x_complexType_class_embedded);
|
||||
end;
|
||||
|
||||
function TTest_XsdParser.LoadComplexType_Class_Extend_Simple_Schema( ) : TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_complexType_extend_simple);
|
||||
end;
|
||||
|
||||
function TTest_XsdParser.LoadComplexType_Record_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_complexType_record);
|
||||
@ -1023,6 +1103,11 @@ begin
|
||||
Result := ParseDoc(x_complexType_class_embedded);
|
||||
end;
|
||||
|
||||
function TTest_WsdlParser.LoadComplexType_Class_Extend_Simple_Schema() : TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_complexType_extend_simple);
|
||||
end;
|
||||
|
||||
function TTest_WsdlParser.LoadComplexType_Record_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_complexType_record);
|
||||
|
@ -331,8 +331,27 @@ type
|
||||
procedure Equal();
|
||||
end;
|
||||
|
||||
{ TTest_TBase64StringRemotable }
|
||||
|
||||
TTest_TBase64StringRemotable = class(TTestCase)
|
||||
published
|
||||
procedure test_Assign();
|
||||
procedure Equal();
|
||||
procedure SetBinaryData();
|
||||
procedure SetEncodedString();
|
||||
end;
|
||||
|
||||
{ TTest_TBase64StringExtRemotable }
|
||||
|
||||
TTest_TBase64StringExtRemotable = class(TTestCase)
|
||||
published
|
||||
procedure Equal();
|
||||
procedure SetBinaryData();
|
||||
procedure SetEncodedString();
|
||||
end;
|
||||
|
||||
implementation
|
||||
uses Math;
|
||||
uses Math, basex_encode;
|
||||
|
||||
function RandomValue(const AMaxlen: Integer): ansistring;
|
||||
var
|
||||
@ -2291,6 +2310,214 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TTest_TBase64StringRemotable }
|
||||
|
||||
procedure TTest_TBase64StringRemotable.test_Assign();
|
||||
const ITER = 100;
|
||||
var
|
||||
i : Integer;
|
||||
a, b : TBase64StringRemotable;
|
||||
begin
|
||||
b := nil;
|
||||
a := TBase64StringRemotable.Create();
|
||||
try
|
||||
b := TBase64StringRemotable.Create();
|
||||
for i := 1 to ITER do begin
|
||||
a.BinaryData := RandomValue(Random(500));
|
||||
b.Assign(a);
|
||||
CheckEquals(a.BinaryData, b.BinaryData);
|
||||
CheckEquals(a.EncodedString, b.EncodedString);
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(b);
|
||||
FreeAndNil(a);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTest_TBase64StringRemotable.Equal();
|
||||
const ITER = 100;
|
||||
var
|
||||
i : Integer;
|
||||
a, b : TBase64StringRemotable;
|
||||
c : TClass_A;
|
||||
begin
|
||||
c := nil;
|
||||
b := nil;
|
||||
a := TBase64StringRemotable.Create();
|
||||
try
|
||||
b := TBase64StringRemotable.Create();
|
||||
CheckEquals(False, a.Equal(nil));
|
||||
c := TClass_A.Create();
|
||||
CheckEquals(False, a.Equal(c));
|
||||
a.BinaryData := 'wst';
|
||||
b.BinaryData := 'azerty';
|
||||
CheckEquals(False, a.Equal(b));
|
||||
CheckEquals(False, b.Equal(a));
|
||||
|
||||
for i := 1 to ITER do begin
|
||||
a.BinaryData := RandomValue(Random(500));
|
||||
b.BinaryData := a.BinaryData;
|
||||
CheckEquals(True, a.Equal(b));
|
||||
CheckEquals(True, b.Equal(a));
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(c);
|
||||
FreeAndNil(b);
|
||||
FreeAndNil(a);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTest_TBase64StringRemotable.SetBinaryData();
|
||||
const ITER = 100;
|
||||
var
|
||||
i : Integer;
|
||||
a : TBase64StringRemotable;
|
||||
s, es : string;
|
||||
begin
|
||||
a := TBase64StringRemotable.Create();
|
||||
try
|
||||
s := ''; es := Base64Encode(s);
|
||||
a.BinaryData := s;
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
|
||||
for i := 1 to ITER do begin
|
||||
s := RandomValue(Random(500)); es := Base64Encode(s);
|
||||
a.BinaryData := s;
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(a);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTest_TBase64StringRemotable.SetEncodedString();
|
||||
const ITER = 100;
|
||||
var
|
||||
i : Integer;
|
||||
a : TBase64StringRemotable;
|
||||
s, es : string;
|
||||
begin
|
||||
a := TBase64StringRemotable.Create();
|
||||
try
|
||||
s := ''; es := Base64Encode(s);
|
||||
a.EncodedString := es;
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
|
||||
for i := 1 to ITER do begin
|
||||
s := RandomValue(Random(500)); es := Base64Encode(s);
|
||||
a.EncodedString := es;
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(a);
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TTest_TBase64StringExtRemotable }
|
||||
|
||||
procedure TTest_TBase64StringExtRemotable.Equal();
|
||||
const ITER = 100;
|
||||
var
|
||||
i : Integer;
|
||||
a, b : TBase64StringExtRemotable;
|
||||
c : TClass_A;
|
||||
begin
|
||||
c := nil;
|
||||
b := nil;
|
||||
a := TBase64StringExtRemotable.Create();
|
||||
try
|
||||
b := TBase64StringExtRemotable.Create();
|
||||
CheckEquals(False, a.Equal(nil));
|
||||
c := TClass_A.Create();
|
||||
CheckEquals(False, a.Equal(c));
|
||||
a.BinaryData := 'wst';
|
||||
b.BinaryData := 'azerty';
|
||||
CheckEquals(False, a.Equal(b));
|
||||
CheckEquals(False, b.Equal(a));
|
||||
|
||||
for i := 1 to ITER do begin
|
||||
a.BinaryData := RandomValue(Random(500));
|
||||
b.BinaryData := a.BinaryData;
|
||||
CheckEquals(True, a.Equal(b));
|
||||
CheckEquals(True, b.Equal(a));
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(c);
|
||||
FreeAndNil(b);
|
||||
FreeAndNil(a);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTest_TBase64StringExtRemotable.SetBinaryData();
|
||||
const ITER = 100;
|
||||
var
|
||||
i : Integer;
|
||||
a : TBase64StringExtRemotable;
|
||||
s, es : string;
|
||||
begin
|
||||
a := TBase64StringExtRemotable.Create();
|
||||
try
|
||||
s := ''; es := Base64Encode(s);
|
||||
a.BinaryData := s;
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
|
||||
for i := 1 to ITER do begin
|
||||
s := RandomValue(Random(500)); es := Base64Encode(s);
|
||||
a.BinaryData := s;
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(a);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTest_TBase64StringExtRemotable.SetEncodedString();
|
||||
const ITER = 100;
|
||||
var
|
||||
i : Integer;
|
||||
a : TBase64StringExtRemotable;
|
||||
s, es : string;
|
||||
begin
|
||||
a := TBase64StringExtRemotable.Create();
|
||||
try
|
||||
s := ''; es := Base64Encode(s);
|
||||
a.EncodedString := es;
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
|
||||
for i := 1 to ITER do begin
|
||||
s := RandomValue(Random(500)); es := Base64Encode(s);
|
||||
a.EncodedString := es;
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
CheckEquals(s,a.BinaryData);
|
||||
CheckEquals(es,a.EncodedString);
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(a);
|
||||
end;
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterTest('Support',TTest_TBaseComplexRemotable.Suite);
|
||||
RegisterTest('Support',TTest_TStringBufferRemotable.Suite);
|
||||
@ -2317,5 +2544,8 @@ initialization
|
||||
|
||||
RegisterTest('Support',TTest_TBaseObjectArrayRemotable.Suite);
|
||||
|
||||
RegisterTest('Support',TTest_TBase64StringRemotable.Suite);
|
||||
RegisterTest('Support',TTest_TBase64StringExtRemotable.Suite);
|
||||
|
||||
end.
|
||||
|
||||
|
@ -24,7 +24,11 @@ uses
|
||||
TestFrameWork, ActiveX,
|
||||
{$ENDIF}
|
||||
TypInfo,
|
||||
base_service_intf, wst_types, server_service_intf, service_intf;
|
||||
base_service_intf, wst_types, server_service_intf, service_intf
|
||||
{$IFDEF FPC}
|
||||
, fpjson, jsonparser, base_json_formatter, json_formatter, server_service_json
|
||||
{$ENDIF}
|
||||
;
|
||||
|
||||
type
|
||||
|
||||
@ -340,6 +344,7 @@ type
|
||||
TTestFormatter = class(TTestFormatterSimpleType)
|
||||
protected
|
||||
class function GetFormaterName() : string;virtual;abstract;
|
||||
class function SupportNamedArrayItem() : Boolean;virtual;
|
||||
published
|
||||
procedure Test_Int_WithClass;
|
||||
|
||||
@ -410,6 +415,7 @@ type
|
||||
TTestSOAPFormatter= class(TTestFormatter)
|
||||
protected
|
||||
class function GetFormaterName() : string;override;
|
||||
class function SupportNamedArrayItem() : Boolean;override;
|
||||
function CreateFormatter(ARootType : PTypeInfo):IFormatterBase;override;
|
||||
published
|
||||
procedure test_WriteBuffer();
|
||||
@ -439,6 +445,18 @@ type
|
||||
procedure test_WriteBuffer();
|
||||
end;
|
||||
|
||||
{ TTestJsonRpcFormatter }
|
||||
|
||||
TTestJsonRpcFormatter= class(TTestFormatter)
|
||||
protected
|
||||
class function GetFormaterName() : string;override;
|
||||
function CreateFormatter(ARootType : PTypeInfo):IFormatterBase;override;
|
||||
function Support_ComplextType_with_SimpleContent():Boolean;override;
|
||||
function Support_nil():Boolean;override;
|
||||
published
|
||||
//procedure test_WriteBuffer();
|
||||
end;
|
||||
|
||||
{ TTestArray }
|
||||
|
||||
TTestArray= class(TTestCase)
|
||||
@ -508,6 +526,17 @@ type
|
||||
procedure ExceptBlock_client();
|
||||
end;
|
||||
|
||||
{ TTest_JsonRpcFormatterExceptionBlock }
|
||||
|
||||
TTest_JsonRpcFormatterExceptionBlock = class(TTestCase)
|
||||
protected
|
||||
function CreateFormatter():IFormatterResponse;
|
||||
function CreateFormatterClient():IFormatterClient;
|
||||
published
|
||||
procedure ExceptBlock_server();
|
||||
procedure ExceptBlock_client();
|
||||
end;
|
||||
|
||||
{ TTest_TStringBufferRemotable }
|
||||
|
||||
TTest_TStringBufferRemotable = class(TTestCase)
|
||||
@ -1185,6 +1214,11 @@ begin
|
||||
End;
|
||||
end;
|
||||
|
||||
class function TTestFormatter.SupportNamedArrayItem() : Boolean;
|
||||
begin
|
||||
Result := False;
|
||||
end;
|
||||
|
||||
procedure TTestFormatter.Test_Int_WithClass;
|
||||
Var
|
||||
f : IFormatterBase;
|
||||
@ -1370,7 +1404,7 @@ begin
|
||||
f.EndScope();
|
||||
|
||||
s := TMemoryStream.Create();
|
||||
f.SaveToStream(s); s.SaveToFile(ClassName + '.txt');
|
||||
f.SaveToStream(s); s.SaveToFile(ClassName + '.Test_CplxInt64SimpleContent_WithClass.txt');
|
||||
FreeAndNil(a);
|
||||
|
||||
a := TClass_CplxSimpleContent.Create();
|
||||
@ -2896,7 +2930,7 @@ begin
|
||||
f.BeginObject('Root',TypeInfo(TClass_A));
|
||||
f.Put('a',TypeInfo(TClass_A),a);
|
||||
f.Put('b',TypeInfo(TClass_A),b);
|
||||
f.Put('intv',TypeInfo(TArrayOfStringRemotable),intv);
|
||||
f.Put('intv',TypeInfo(TArrayOfStringRemotableSample),intv);
|
||||
f.EndScope();
|
||||
|
||||
s := TMemoryStream.Create();
|
||||
@ -2906,7 +2940,7 @@ begin
|
||||
FreeAndNil(intv);
|
||||
|
||||
ls := TStringList.Create();
|
||||
f := CreateFormatter(TypeInfo(TClass_A));
|
||||
f := CreateFormatter(TypeInfo(TClass_A)); s.SaveToFile(ClassName + '.test_GetScopeItemNames.xml');
|
||||
s.Position := 0;
|
||||
f.LoadFromStream(s);
|
||||
x := 'Root';
|
||||
@ -2936,7 +2970,8 @@ begin
|
||||
x := 'intv';
|
||||
f.BeginArrayRead(x,TypeInfo(TArrayOfStringRemotableSample),asScoped,'OI');
|
||||
CheckEquals(3, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count(intv)');
|
||||
//Check( ls.IndexOf('OI') >= 0 );
|
||||
if SupportNamedArrayItem() then
|
||||
Check( ls.IndexOf('OI') >= 0, 'Named item' );
|
||||
f.EndScopeRead();
|
||||
|
||||
f.EndScopeRead();
|
||||
@ -3016,6 +3051,11 @@ begin
|
||||
Result := 'SOAP';
|
||||
end;
|
||||
|
||||
class function TTestSOAPFormatter.SupportNamedArrayItem() : Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
procedure TTestSOAPFormatter.test_WriteBuffer();
|
||||
const
|
||||
s_XML_BUFFER =
|
||||
@ -4204,6 +4244,116 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TTestJsonRpcFormatter }
|
||||
|
||||
class function TTestJsonRpcFormatter.GetFormaterName() : string;
|
||||
begin
|
||||
Result := 'json';
|
||||
end;
|
||||
|
||||
function TTestJsonRpcFormatter.CreateFormatter(ARootType : PTypeInfo) : IFormatterBase;
|
||||
begin
|
||||
{$IFDEF FPC}
|
||||
Result := TJsonRpcBaseFormatter.Create();
|
||||
Result.BeginObject('root',nil);
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
function TTestJsonRpcFormatter.Support_ComplextType_with_SimpleContent() : Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TTestJsonRpcFormatter.Support_nil() : Boolean;
|
||||
begin
|
||||
Result := False;
|
||||
end;
|
||||
|
||||
{ TTest_JsonRpcFormatterExceptionBlock }
|
||||
|
||||
function TTest_JsonRpcFormatterExceptionBlock.CreateFormatter() : IFormatterResponse;
|
||||
begin
|
||||
Result := server_service_json.TJsonRpcFormatter.Create() as IFormatterResponse;
|
||||
end;
|
||||
|
||||
function TTest_JsonRpcFormatterExceptionBlock.CreateFormatterClient() : IFormatterClient;
|
||||
begin
|
||||
{$IFDEF FPC}
|
||||
Result := json_formatter.TJsonRpcFormatter.Create() as IFormatterClient;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
procedure TTest_JsonRpcFormatterExceptionBlock.ExceptBlock_server();
|
||||
const VAL_CODE = '1210'; VAL_MSG = 'This is a sample exception message.';
|
||||
var
|
||||
f : IFormatterResponse;
|
||||
strm : TMemoryStream;
|
||||
locParser : TJSONParser;
|
||||
root, errorNodeObj : TJSONObject;
|
||||
errorNode, tmpNode : TJSONData;
|
||||
excpt_code, excpt_msg : string;
|
||||
begin
|
||||
root := nil;
|
||||
f := CreateFormatter();
|
||||
f.BeginExceptionList(VAL_CODE,VAL_MSG);
|
||||
f.EndExceptionList();
|
||||
locParser := nil;
|
||||
strm := TMemoryStream.Create();
|
||||
try
|
||||
f.SaveToStream(strm); strm.SaveToFile('TTest_JsonRpcFormatterExceptionBlock.ExceptBlock_server.txt');
|
||||
strm.Position := 0;
|
||||
locParser := TJSONParser.Create(strm);
|
||||
root := locParser.Parse() as TJSONObject;
|
||||
Check(Assigned(root));
|
||||
errorNode := root.Elements[s_json_error];
|
||||
Check(Assigned(errorNode),'Error');
|
||||
Check(errorNode.JSONType() = jtObject);
|
||||
errorNodeObj := errorNode as TJSONObject;
|
||||
Check(errorNodeObj.IndexOfName(s_json_code) >= 0, s_json_code);
|
||||
Check(errorNodeObj.IndexOfName(s_json_message) >= 0, s_json_message);
|
||||
excpt_code := errorNodeObj.Elements[s_json_code].AsString;
|
||||
excpt_msg := errorNodeObj.Elements[s_json_message].AsString;
|
||||
CheckEquals(VAL_CODE,excpt_code,'faultCode');
|
||||
CheckEquals(VAL_MSG,excpt_msg,'faultString');
|
||||
finally
|
||||
locParser.Free();
|
||||
FreeAndNil(strm);
|
||||
root.Free();
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTest_JsonRpcFormatterExceptionBlock.ExceptBlock_client();
|
||||
const
|
||||
VAL_CODE = '1210'; VAL_MSG = 'This is a sample exception message.';
|
||||
VAL_STREAM = '{ "result" : null, "error" : { "code" : ' + VAL_CODE + ', "message" : "' + VAL_MSG + '" } }';
|
||||
var
|
||||
f : IFormatterClient;
|
||||
strm : TStringStream;
|
||||
excpt_code, excpt_msg : string;
|
||||
begin
|
||||
excpt_code := '';
|
||||
excpt_msg := '';
|
||||
f := CreateFormatterClient();
|
||||
strm := TStringStream.Create(VAL_STREAM);
|
||||
try
|
||||
strm.Position := 0;
|
||||
f.LoadFromStream(strm);
|
||||
try
|
||||
f.BeginCallRead(nil);
|
||||
Check(False,'BeginCallRead() should raise an exception.');
|
||||
except
|
||||
on e : EJsonRpcException do begin
|
||||
excpt_code := e.FaultCode;
|
||||
excpt_msg := e.FaultString;
|
||||
end;
|
||||
end;
|
||||
CheckEquals(VAL_CODE,excpt_code,'faultCode');
|
||||
CheckEquals(VAL_MSG,excpt_msg,'faultString');
|
||||
finally
|
||||
FreeAndNil(strm);
|
||||
end;
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterStdTypes();
|
||||
GetTypeRegistry().Register(sXSD_NS,TypeInfo(TTestEnum),'TTestEnum').RegisterExternalPropertyName('teOne', '1');
|
||||
@ -4254,35 +4404,23 @@ initialization
|
||||
RegisterAttributeProperty(TypeInfo(TTestSmallRecord),'fieldWord');
|
||||
RegisterAttributeProperty(TypeInfo(TTestRecord),'fieldWord');
|
||||
|
||||
|
||||
RegisterTest('Support',TTestArray.Suite);
|
||||
RegisterTest('Serializer',TTestSOAPFormatter.Suite);
|
||||
RegisterTest('Serializer',TTestBinaryFormatter.Suite);
|
||||
RegisterTest('Support',TTest_TBaseComplexRemotable.Suite);
|
||||
RegisterTest('Serializer',TTestSOAPFormatterAttributes.Suite);
|
||||
RegisterTest('Serializer',TTestBinaryFormatterAttributes.Suite);
|
||||
|
||||
RegisterTest('Serializer',TTestXmlRpcFormatterAttributes.Suite);
|
||||
RegisterTest('Serializer',TTestXmlRpcFormatter.Suite);
|
||||
RegisterTest('Serializer',TTest_SoapFormatterExceptionBlock.Suite);
|
||||
RegisterTest('Serializer',TTest_XmlRpcFormatterExceptionBlock.Suite);
|
||||
RegisterTest('Serializer',TTest_BinaryFormatterExceptionBlock.Suite);
|
||||
RegisterTest('Serializer',TTest_TStringBufferRemotable.Suite);
|
||||
{$IFDEF FPC}
|
||||
RegisterTest(TTestArray);
|
||||
RegisterTest(TTestSOAPFormatter);
|
||||
RegisterTest(TTestBinaryFormatter);
|
||||
RegisterTest(TTest_TBaseComplexRemotable);
|
||||
RegisterTest(TTestSOAPFormatterAttributes);
|
||||
RegisterTest(TTestBinaryFormatterAttributes);
|
||||
|
||||
RegisterTest(TTestXmlRpcFormatterAttributes);
|
||||
RegisterTest(TTestXmlRpcFormatter);
|
||||
RegisterTest(TTest_SoapFormatterExceptionBlock);
|
||||
RegisterTest(TTest_XmlRpcFormatterExceptionBlock);
|
||||
RegisterTest(TTest_BinaryFormatterExceptionBlock);
|
||||
RegisterTest(TTest_TStringBufferRemotable);
|
||||
{$ELSE}
|
||||
RegisterTest(TTestArray.Suite);
|
||||
RegisterTest(TTestSOAPFormatter.Suite);
|
||||
RegisterTest(TTestBinaryFormatter.Suite);
|
||||
RegisterTest(TTest_TBaseComplexRemotable.Suite);
|
||||
RegisterTest(TTestSOAPFormatterAttributes.Suite);
|
||||
RegisterTest(TTestBinaryFormatterAttributes.Suite);
|
||||
|
||||
RegisterTest(TTestXmlRpcFormatterAttributes.Suite);
|
||||
RegisterTest(TTestXmlRpcFormatter.Suite);
|
||||
RegisterTest(TTest_SoapFormatterExceptionBlock.Suite);
|
||||
RegisterTest(TTest_XmlRpcFormatterExceptionBlock.Suite);
|
||||
RegisterTest(TTest_BinaryFormatterExceptionBlock.Suite);
|
||||
RegisterTest(TTest_TStringBufferRemotable.Suite);
|
||||
RegisterTest('Serializer',TTestJsonRpcFormatter.Suite);
|
||||
RegisterTest('Serializer',TTest_JsonRpcFormatterExceptionBlock.Suite);
|
||||
{$ENDIF}
|
||||
|
||||
|
||||
end.
|
||||
|
@ -7,7 +7,7 @@
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value="./"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="12"/>
|
||||
<ActiveEditorIndexAtStart Value="6"/>
|
||||
</General>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
@ -27,7 +27,7 @@
|
||||
<PackageName Value="FPCUnitTestRunner"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="53">
|
||||
<Units Count="47">
|
||||
<Unit0>
|
||||
<Filename Value="wst_test_suite.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -40,12 +40,12 @@
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="testformatter_unit"/>
|
||||
<CursorPos X="27" Y="1293"/>
|
||||
<TopLine Value="1291"/>
|
||||
<CursorPos X="17" Y="3717"/>
|
||||
<TopLine Value="3715"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="17" Y="1099" ID="3"/>
|
||||
<Item0 X="17" Y="1128" ID="3"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
@ -53,16 +53,18 @@
|
||||
<Filename Value="..\..\server_service_soap.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="server_service_soap"/>
|
||||
<CursorPos X="8" Y="182"/>
|
||||
<TopLine Value="161"/>
|
||||
<CursorPos X="3" Y="83"/>
|
||||
<TopLine Value="81"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="..\..\soap_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="soap_formatter"/>
|
||||
<CursorPos X="41" Y="31"/>
|
||||
<TopLine Value="17"/>
|
||||
<CursorPos X="1" Y="260"/>
|
||||
<TopLine Value="246"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -71,21 +73,23 @@
|
||||
<Filename Value="..\..\base_binary_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_binary_formatter"/>
|
||||
<CursorPos X="46" Y="1584"/>
|
||||
<TopLine Value="1579"/>
|
||||
<CursorPos X="24" Y="27"/>
|
||||
<TopLine Value="7"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_service_intf"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<CursorPos X="1" Y="4086"/>
|
||||
<TopLine Value="4072"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="2">
|
||||
<Item0 X="33" Y="1156" ID="0"/>
|
||||
<Item1 X="5" Y="1210" ID="1"/>
|
||||
<Item0 X="33" Y="1201" ID="0"/>
|
||||
<Item1 X="5" Y="1255" ID="1"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit5>
|
||||
@ -93,9 +97,9 @@
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_soap_formatter"/>
|
||||
<CursorPos X="20" Y="1658"/>
|
||||
<TopLine Value="1649"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<CursorPos X="3" Y="37"/>
|
||||
<TopLine Value="23"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit6>
|
||||
@ -103,9 +107,9 @@
|
||||
<Filename Value="..\..\binary_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="binary_formatter"/>
|
||||
<CursorPos X="35" Y="33"/>
|
||||
<TopLine Value="14"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<CursorPos X="9" Y="177"/>
|
||||
<TopLine Value="169"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit7>
|
||||
@ -113,20 +117,19 @@
|
||||
<Filename Value="..\..\binary_streamer.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="binary_streamer"/>
|
||||
<CursorPos X="95" Y="90"/>
|
||||
<CursorPos X="1" Y="14"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="38" Y="487" ID="2"/>
|
||||
</Bookmarks>
|
||||
</Unit8>
|
||||
<Unit9>
|
||||
<Filename Value="..\..\server_binary_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="server_binary_formatter"/>
|
||||
<CursorPos X="9" Y="123"/>
|
||||
<TopLine Value="27"/>
|
||||
<CursorPos X="1" Y="24"/>
|
||||
<TopLine Value="12"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
@ -158,12 +161,10 @@
|
||||
<UnitName Value="parserdefs"/>
|
||||
<CursorPos X="1" Y="1024"/>
|
||||
<TopLine Value="1010"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="202"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="18" Y="1133" ID="2"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<Filename Value="..\..\metadata_wsdl.pas"/>
|
||||
@ -182,309 +183,323 @@
|
||||
<UsageCount Value="203"/>
|
||||
</Unit15>
|
||||
<Unit16>
|
||||
<Filename Value="..\..\service_intf.pas"/>
|
||||
<UnitName Value="service_intf"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
<Filename Value="test_parserdef.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="test_parserdef"/>
|
||||
<CursorPos X="93" Y="76"/>
|
||||
<TopLine Value="11"/>
|
||||
<UsageCount Value="200"/>
|
||||
</Unit17>
|
||||
<Unit18>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_xmlrpc_formatter"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="14" Y="1589"/>
|
||||
<TopLine Value="1587"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="200"/>
|
||||
</Unit18>
|
||||
<Unit19>
|
||||
<Loaded Value="True"/>
|
||||
</Unit17>
|
||||
<Unit18>
|
||||
<Filename Value="..\..\ws_helper\pascal_parser_intf.pas"/>
|
||||
<UnitName Value="pascal_parser_intf"/>
|
||||
<CursorPos X="3" Y="174"/>
|
||||
<TopLine Value="165"/>
|
||||
<UsageCount Value="59"/>
|
||||
</Unit19>
|
||||
<Unit20>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\packages\fcl-xml\src\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="38" Y="225"/>
|
||||
<TopLine Value="203"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit20>
|
||||
<Unit21>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\contnrs.pp"/>
|
||||
<UnitName Value="contnrs"/>
|
||||
<CursorPos X="3" Y="1376"/>
|
||||
<TopLine Value="1370"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="8" Y="142"/>
|
||||
<TopLine Value="197"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit22>
|
||||
<Unit23>
|
||||
<CursorPos X="62" Y="217"/>
|
||||
<TopLine Value="200"/>
|
||||
<EditorIndex Value="14"/>
|
||||
<UsageCount Value="98"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit18>
|
||||
<Unit19>
|
||||
<Filename Value="..\..\wst_fpc_xml.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="wst_fpc_xml"/>
|
||||
<CursorPos X="65" Y="85"/>
|
||||
<TopLine Value="56"/>
|
||||
<UsageCount Value="201"/>
|
||||
</Unit23>
|
||||
<Unit24>
|
||||
</Unit19>
|
||||
<Unit20>
|
||||
<Filename Value="test_utilities.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="test_utilities"/>
|
||||
<CursorPos X="59" Y="740"/>
|
||||
<TopLine Value="714"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<TopLine Value="711"/>
|
||||
<EditorIndex Value="15"/>
|
||||
<UsageCount Value="207"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit24>
|
||||
<Unit25>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\DUnitCompatibleInterface.inc"/>
|
||||
<CursorPos X="21" Y="9"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit25>
|
||||
<Unit26>
|
||||
</Unit20>
|
||||
<Unit21>
|
||||
<Filename Value="..\..\server_service_xmlrpc.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="server_service_xmlrpc"/>
|
||||
<CursorPos X="38" Y="33"/>
|
||||
<TopLine Value="27"/>
|
||||
<UsageCount Value="214"/>
|
||||
</Unit26>
|
||||
<Unit27>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="test_parsers"/>
|
||||
<CursorPos X="50" Y="24"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<CursorPos X="33" Y="1106"/>
|
||||
<TopLine Value="1106"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit27>
|
||||
<Unit28>
|
||||
</Unit22>
|
||||
<Unit23>
|
||||
<Filename Value="..\..\ws_helper\xsd_parser.pas"/>
|
||||
<UnitName Value="xsd_parser"/>
|
||||
<CursorPos X="17" Y="190"/>
|
||||
<TopLine Value="188"/>
|
||||
<UsageCount Value="35"/>
|
||||
</Unit28>
|
||||
<Unit29>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="58"/>
|
||||
</Unit23>
|
||||
<Unit24>
|
||||
<Filename Value="..\..\ws_helper\parserutils.pas"/>
|
||||
<UnitName Value="parserutils"/>
|
||||
<CursorPos X="98" Y="94"/>
|
||||
<TopLine Value="71"/>
|
||||
<UsageCount Value="27"/>
|
||||
</Unit29>
|
||||
<Unit30>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\testregistry.pp"/>
|
||||
<UnitName Value="testregistry"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="18"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit30>
|
||||
<Unit31>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
||||
<UnitName Value="fpcunit"/>
|
||||
<CursorPos X="33" Y="438"/>
|
||||
<TopLine Value="431"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<UsageCount Value="20"/>
|
||||
</Unit24>
|
||||
<Unit25>
|
||||
<Filename Value="..\..\ws_helper\ws_parser_imp.pas"/>
|
||||
<UnitName Value="ws_parser_imp"/>
|
||||
<CursorPos X="14" Y="91"/>
|
||||
<TopLine Value="77"/>
|
||||
<UsageCount Value="34"/>
|
||||
</Unit32>
|
||||
<Unit33>
|
||||
<CursorPos X="71" Y="386"/>
|
||||
<TopLine Value="363"/>
|
||||
<UsageCount Value="57"/>
|
||||
</Unit25>
|
||||
<Unit26>
|
||||
<Filename Value="..\..\ws_helper\wsdl_generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="wsdl_generator"/>
|
||||
<CursorPos X="27" Y="146"/>
|
||||
<TopLine Value="124"/>
|
||||
<UsageCount Value="219"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
</Unit26>
|
||||
<Unit27>
|
||||
<Filename Value="..\..\ws_helper\xsd_generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="xsd_generator"/>
|
||||
<CursorPos X="3" Y="81"/>
|
||||
<TopLine Value="261"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="202"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit34>
|
||||
<Unit35>
|
||||
</Unit27>
|
||||
<Unit28>
|
||||
<Filename Value="..\..\ws_helper\xsd_consts.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="xsd_consts"/>
|
||||
<CursorPos X="8" Y="78"/>
|
||||
<TopLine Value="51"/>
|
||||
<UsageCount Value="201"/>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
</Unit28>
|
||||
<Unit29>
|
||||
<Filename Value="..\..\ws_helper\wsdl_parser.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="wsdl_parser"/>
|
||||
<CursorPos X="28" Y="845"/>
|
||||
<TopLine Value="835"/>
|
||||
<UsageCount Value="135"/>
|
||||
</Unit36>
|
||||
<Unit37>
|
||||
<CursorPos X="49" Y="21"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="200"/>
|
||||
</Unit29>
|
||||
<Unit30>
|
||||
<Filename Value="..\..\base_json_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_json_formatter"/>
|
||||
<CursorPos X="7" Y="383"/>
|
||||
<TopLine Value="367"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="188"/>
|
||||
<CursorPos X="22" Y="23"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="237"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit37>
|
||||
<Unit38>
|
||||
</Unit30>
|
||||
<Unit31>
|
||||
<Filename Value="..\..\fcl-json\src\fpjson.pp"/>
|
||||
<UnitName Value="fpjson"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="330"/>
|
||||
<UsageCount Value="42"/>
|
||||
</Unit38>
|
||||
<Unit39>
|
||||
<Filename Value="..\..\wst_types.pas"/>
|
||||
<UnitName Value="wst_types"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="13"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit39>
|
||||
<Unit40>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
|
||||
<CursorPos X="3" Y="389"/>
|
||||
<TopLine Value="375"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit40>
|
||||
<Unit41>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\xmlwrite.pp"/>
|
||||
<UnitName Value="XMLWrite"/>
|
||||
<CursorPos X="9" Y="609"/>
|
||||
<TopLine Value="586"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit41>
|
||||
<Unit42>
|
||||
<UsageCount Value="35"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
||||
<UnitName Value="library_imp_utils"/>
|
||||
<CursorPos X="82" Y="43"/>
|
||||
<TopLine Value="19"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<UsageCount Value="67"/>
|
||||
<CursorPos X="92" Y="21"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="17"/>
|
||||
<UsageCount Value="100"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit42>
|
||||
<Unit43>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-xml\src\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="22" Y="351"/>
|
||||
<TopLine Value="336"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit43>
|
||||
<Unit44>
|
||||
</Unit32>
|
||||
<Unit33>
|
||||
<Filename Value="test_support.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="test_support"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="107"/>
|
||||
<CursorPos X="3" Y="109"/>
|
||||
<TopLine Value="95"/>
|
||||
<EditorIndex Value="16"/>
|
||||
<UsageCount Value="188"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit44>
|
||||
<Unit45>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\packages\fcl-fpcunit\src\testutils.pp"/>
|
||||
<UnitName Value="testutils"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="14"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit45>
|
||||
<Unit46>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\packages\fcl-fpcunit\src\DUnitCompatibleInterface.inc"/>
|
||||
<CursorPos X="21" Y="9"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit46>
|
||||
<Unit47>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
||||
<UnitName Value="fpcunit"/>
|
||||
<CursorPos X="1" Y="446"/>
|
||||
<TopLine Value="432"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit47>
|
||||
<Unit48>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\rtl\objpas\math.pp"/>
|
||||
<UnitName Value="math"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="59"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit48>
|
||||
<Unit49>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit34>
|
||||
<Unit35>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\rtl\objpas\typinfo.pp"/>
|
||||
<UnitName Value="typinfo"/>
|
||||
<CursorPos X="19" Y="270"/>
|
||||
<TopLine Value="256"/>
|
||||
<CursorPos X="20" Y="38"/>
|
||||
<TopLine Value="24"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit49>
|
||||
<Unit50>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
||||
<UnitName Value="xmlrpc_formatter"/>
|
||||
<CursorPos X="1" Y="169"/>
|
||||
<TopLine Value="155"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="30"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="70"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit50>
|
||||
<Unit51>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\rtl\objpas\classes\classesh.inc"/>
|
||||
<CursorPos X="15" Y="344"/>
|
||||
<TopLine Value="330"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit51>
|
||||
<Unit52>
|
||||
</Unit36>
|
||||
<Unit37>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\packages\fcl-json\src\fpjson.pp"/>
|
||||
<UnitName Value="fpjson"/>
|
||||
<CursorPos X="3" Y="265"/>
|
||||
<TopLine Value="320"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="29"/>
|
||||
<CursorPos X="17" Y="312"/>
|
||||
<TopLine Value="317"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="69"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit52>
|
||||
</Unit37>
|
||||
<Unit38>
|
||||
<Filename Value="..\..\basex_encode.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="basex_encode"/>
|
||||
<CursorPos X="45" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="101"/>
|
||||
</Unit38>
|
||||
<Unit39>
|
||||
<Filename Value="test_basex_encode.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="test_basex_encode"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="101"/>
|
||||
</Unit39>
|
||||
<Unit40>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\packages\fcl-json\src\jsonparser.pp"/>
|
||||
<UnitName Value="jsonparser"/>
|
||||
<CursorPos X="35" Y="22"/>
|
||||
<TopLine Value="6"/>
|
||||
<UsageCount Value="15"/>
|
||||
</Unit40>
|
||||
<Unit41>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\packages\fcl-fpcunit\src\testregistry.pp"/>
|
||||
<UnitName Value="testregistry"/>
|
||||
<CursorPos X="11" Y="32"/>
|
||||
<TopLine Value="24"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit41>
|
||||
<Unit42>
|
||||
<Filename Value="..\..\wst_global.inc"/>
|
||||
<CursorPos X="22" Y="17"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit42>
|
||||
<Unit43>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\packages\fcl-base\src\inc\contnrs.pp"/>
|
||||
<UnitName Value="contnrs"/>
|
||||
<CursorPos X="3" Y="1403"/>
|
||||
<TopLine Value="1398"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit43>
|
||||
<Unit44>
|
||||
<Filename Value="..\..\..\..\..\..\..\lazarus\fpc\2.2.1\source\packages\fcl-json\src\jsonscanner.pp"/>
|
||||
<UnitName Value="jsonscanner"/>
|
||||
<CursorPos X="11" Y="258"/>
|
||||
<TopLine Value="210"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit44>
|
||||
<Unit45>
|
||||
<Filename Value="..\..\json_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="json_formatter"/>
|
||||
<CursorPos X="3" Y="66"/>
|
||||
<TopLine Value="43"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="34"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit45>
|
||||
<Unit46>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="server_service_json"/>
|
||||
<CursorPos X="60" Y="54"/>
|
||||
<TopLine Value="40"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="30"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit46>
|
||||
</Units>
|
||||
<JumpHistory Count="5" HistoryIndex="4">
|
||||
<JumpHistory Count="16" HistoryIndex="15">
|
||||
<Position1>
|
||||
<Filename Value="test_support.pas"/>
|
||||
<Caret Line="927" Column="13" TopLine="908"/>
|
||||
<Filename Value="..\..\server_binary_formatter.pas"/>
|
||||
<Caret Line="135" Column="45" TopLine="113"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="test_support.pas"/>
|
||||
<Caret Line="2149" Column="5" TopLine="2117"/>
|
||||
<Filename Value="..\..\json_formatter.pas"/>
|
||||
<Caret Line="52" Column="3" TopLine="50"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="test_support.pas"/>
|
||||
<Caret Line="2156" Column="27" TopLine="2146"/>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<Caret Line="56" Column="49" TopLine="45"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="4591" Column="12" TopLine="4577"/>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<Caret Line="57" Column="46" TopLine="36"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="test_support.pas"/>
|
||||
<Caret Line="2111" Column="1" TopLine="2104"/>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<Caret Line="21" Column="16" TopLine="4"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="..\..\json_formatter.pas"/>
|
||||
<Caret Line="165" Column="6" TopLine="151"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="..\..\json_formatter.pas"/>
|
||||
<Caret Line="166" Column="11" TopLine="145"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="..\..\binary_formatter.pas"/>
|
||||
<Caret Line="177" Column="9" TopLine="169"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="3717" Column="17" TopLine="3715"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="..\..\soap_formatter.pas"/>
|
||||
<Caret Line="240" Column="8" TopLine="223"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="..\..\json_formatter.pas"/>
|
||||
<Caret Line="29" Column="35" TopLine="7"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="..\..\server_service_json.pas"/>
|
||||
<Caret Line="21" Column="16" TopLine="4"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="..\..\soap_formatter.pas"/>
|
||||
<Caret Line="271" Column="14" TopLine="246"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="..\..\json_formatter.pas"/>
|
||||
<Caret Line="170" Column="11" TopLine="157"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="..\..\json_formatter.pas"/>
|
||||
<Caret Line="194" Column="48" TopLine="174"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="..\..\json_formatter.pas"/>
|
||||
<Caret Line="189" Column="34" TopLine="174"/>
|
||||
</Position16>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
@ -17,7 +17,8 @@ uses
|
||||
metadata_generator, parserdefs, server_service_intf, metadata_wsdl,
|
||||
test_parserdef, base_xmlrpc_formatter, wst_fpc_xml, test_utilities,
|
||||
server_service_xmlrpc, test_parsers, wsdl_generator, xsd_generator,
|
||||
xsd_consts, base_json_formatter, wsdl_parser, test_support;
|
||||
xsd_consts, base_json_formatter, wsdl_parser, test_support, basex_encode,
|
||||
test_basex_encode, json_formatter, server_service_json;
|
||||
|
||||
Const
|
||||
ShortOpts = 'alh';
|
||||
|
@ -155,6 +155,7 @@ var
|
||||
sym : TPasElement;
|
||||
modulList, decList : TList;
|
||||
mdl : TPasModule;
|
||||
ok : Boolean;
|
||||
begin
|
||||
modulList := AContainer.Package.Modules;
|
||||
for i := 0 to Pred(modulList.Count) do begin
|
||||
@ -174,7 +175,8 @@ begin
|
||||
) and
|
||||
( not sym.InheritsFrom(TPasNativeSimpleType) )
|
||||
then begin
|
||||
if ( ALs.IndexOfObject(sym) = -1 ) then begin
|
||||
ok := ( not sym.InheritsFrom(TPasNativeClassType) ) or sym.InheritsFrom(TPasNativeSimpleContentClassType);
|
||||
if ok and ( ALs.IndexOfObject(sym) = -1 ) then begin
|
||||
ALs.AddObject(AContainer.GetExternalName(sym),sym);
|
||||
end;
|
||||
end;
|
||||
@ -237,6 +239,7 @@ var
|
||||
i : Integer;
|
||||
prp : TPasProperty;
|
||||
extName : string;
|
||||
ancestorType : TPasElement;
|
||||
begin
|
||||
edtName.Text := '';
|
||||
edtProp.Clear();
|
||||
@ -252,7 +255,17 @@ begin
|
||||
end;
|
||||
if Assigned(FObject.AncestorType) then begin
|
||||
//edtParent.ItemIndex := edtParent.Items.IndexOfObject(FObject.AncestorType);
|
||||
edtParent.ItemIndex := edtParent.Items.IndexOfObject(FSymbolTable.FindElement(FSymbolTable.GetExternalName(FObject.AncestorType)));
|
||||
ancestorType := FObject.AncestorType;
|
||||
if ancestorType.InheritsFrom(TPasUnresolvedTypeRef) then begin
|
||||
ancestorType := FSymbolTable.FindElement(FSymbolTable.GetExternalName(ancestorType));
|
||||
end;
|
||||
if Assigned(ancestorType) then begin
|
||||
if ancestorType.InheritsFrom(TPasNativeSimpleType) then
|
||||
ancestorType := TPasNativeSimpleType(ancestorType).ExtendableType
|
||||
else if ancestorType.InheritsFrom(TPasNativeClassType) and Assigned(TPasNativeClassType(ancestorType).ExtendableType) then
|
||||
ancestorType := TPasNativeClassType(ancestorType).ExtendableType;
|
||||
end;
|
||||
edtParent.ItemIndex := edtParent.Items.IndexOfObject(ancestorType);
|
||||
end;
|
||||
end else begin
|
||||
Self.Caption := 'New';
|
||||
@ -277,9 +290,9 @@ begin
|
||||
trueParent := GetUltimeType(trueParent);
|
||||
end;
|
||||
if trueParent.InheritsFrom(TPasNativeSimpleType) and
|
||||
Assigned(TPasNativeSimpleType(trueParent).BoxedType)
|
||||
Assigned(TPasNativeSimpleType(trueParent).ExtendableType)
|
||||
then begin
|
||||
trueParent := TPasNativeSimpleType(trueParent).BoxedType;
|
||||
trueParent := TPasNativeSimpleType(trueParent).ExtendableType;
|
||||
end;
|
||||
end else begin
|
||||
trueParent := nil;
|
||||
|
@ -91,17 +91,17 @@ object fPropEdit: TfPropEdit
|
||||
end
|
||||
object edtAttribute: TCheckBox
|
||||
Left = 20
|
||||
Height = 13
|
||||
Height = 19
|
||||
Top = 170
|
||||
Width = 101
|
||||
Width = 107
|
||||
Caption = 'Attribute Property'
|
||||
TabOrder = 2
|
||||
end
|
||||
object edtOptional: TCheckBox
|
||||
Left = 20
|
||||
Height = 13
|
||||
Height = 19
|
||||
Top = 218
|
||||
Width = 105
|
||||
Width = 111
|
||||
Caption = 'Optional property'
|
||||
Font.Style = [fsItalic]
|
||||
TabOrder = 3
|
||||
|
@ -25,9 +25,9 @@ LazarusResources.Add('TfPropEdit','FORMDATA',[
|
||||
+#5'Width'#3#16#1#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbact'
|
||||
+'SearchAscending'#0#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'#7#14'csDro'
|
||||
+'pDownList'#8'TabOrder'#2#1#0#0#9'TCheckBox'#12'edtAttribute'#4'Left'#2#20#6
|
||||
+'Height'#2#13#3'Top'#3#170#0#5'Width'#2'e'#7'Caption'#6#18'Attribute Propert'
|
||||
+'Height'#2#19#3'Top'#3#170#0#5'Width'#2'k'#7'Caption'#6#18'Attribute Propert'
|
||||
+'y'#8'TabOrder'#2#2#0#0#9'TCheckBox'#11'edtOptional'#4'Left'#2#20#6'Height'#2
|
||||
+#13#3'Top'#3#218#0#5'Width'#2'i'#7'Caption'#6#17'Optional property'#10'Font.'
|
||||
+#19#3'Top'#3#218#0#5'Width'#2'o'#7'Caption'#6#17'Optional property'#10'Font.'
|
||||
+'Style'#11#8'fsItalic'#0#8'TabOrder'#2#3#0#0#0#0#11'TActionList'#11'ActionLi'
|
||||
+'st1'#4'left'#2'h'#3'top'#2'h'#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'D'
|
||||
+'isableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOK'
|
||||
|
@ -134,6 +134,14 @@ var
|
||||
begin
|
||||
edtName.Text := '';
|
||||
edtType.Clear();
|
||||
if Assigned(FClassObject) and
|
||||
FClassObject.InheritsFrom(TPasClassType) and
|
||||
Assigned(TPasClassType(FClassObject).AncestorType) and
|
||||
TPasClassType(FClassObject).AncestorType.InheritsFrom(TPasNativeSimpleContentClassType)
|
||||
then begin
|
||||
edtAttribute.Checked := True;
|
||||
edtAttribute.Enabled := False;
|
||||
end;
|
||||
edtType.Items.BeginUpdate();
|
||||
try
|
||||
edtType.Items.Clear();
|
||||
|
@ -1,7 +1,7 @@
|
||||
object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
Left = 84
|
||||
Left = 166
|
||||
Height = 644
|
||||
Top = 315
|
||||
Top = 209
|
||||
Width = 833
|
||||
HorzScrollBar.Page = 832
|
||||
VertScrollBar.Page = 623
|
||||
@ -78,9 +78,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 = <
|
||||
@ -405,12 +407,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
ShortCut = 24642
|
||||
end>
|
||||
ReadOnly = True
|
||||
SelectedColor.OnChange = nil
|
||||
end
|
||||
end
|
||||
object tsWSDL: TTabSheet
|
||||
Caption = '&WSDL'
|
||||
ClientHeight = 573
|
||||
ClientWidth = 501
|
||||
object srcWSDL: TSynEdit
|
||||
Height = 573
|
||||
Width = 501
|
||||
@ -424,7 +425,9 @@ 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 = <
|
||||
@ -749,12 +752,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
ShortCut = 24642
|
||||
end>
|
||||
ReadOnly = True
|
||||
SelectedColor.OnChange = nil
|
||||
end
|
||||
end
|
||||
object tsProxy: TTabSheet
|
||||
Caption = '&Proxy'
|
||||
ClientHeight = 573
|
||||
ClientWidth = 501
|
||||
object srcProxy: TSynEdit
|
||||
Height = 573
|
||||
Width = 501
|
||||
@ -768,11 +770,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 = <
|
||||
@ -1097,13 +1097,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
ShortCut = 24642
|
||||
end>
|
||||
ReadOnly = True
|
||||
SelectedColor.OnChange = nil
|
||||
end
|
||||
end
|
||||
object tsImp: TTabSheet
|
||||
Caption = 'Im&plementation Skeleton'
|
||||
ClientHeight = 573
|
||||
ClientWidth = 501
|
||||
object srcImp: TSynEdit
|
||||
Height = 573
|
||||
Width = 501
|
||||
@ -1117,11 +1114,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 = <
|
||||
@ -1446,13 +1441,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
ShortCut = 24642
|
||||
end>
|
||||
ReadOnly = True
|
||||
SelectedColor.OnChange = nil
|
||||
end
|
||||
end
|
||||
object tsBinder: TTabSheet
|
||||
Caption = '&Binder'
|
||||
ClientHeight = 573
|
||||
ClientWidth = 501
|
||||
object srcBinder: TSynEdit
|
||||
Height = 573
|
||||
Width = 501
|
||||
@ -1466,12 +1458,10 @@ 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 = <
|
||||
@ -1796,13 +1786,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
ShortCut = 24642
|
||||
end>
|
||||
ReadOnly = True
|
||||
SelectedColor.OnChange = nil
|
||||
end
|
||||
end
|
||||
object tsLog: TTabSheet
|
||||
Caption = '&Log'
|
||||
ClientHeight = 573
|
||||
ClientWidth = 501
|
||||
object mmoLog: TMemo
|
||||
Height = 573
|
||||
Width = 501
|
||||
@ -1865,6 +1852,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
Action = actRefreshView
|
||||
OnClick = actRefreshViewExecute
|
||||
end
|
||||
object MenuItem50: TMenuItem
|
||||
Action = actSearch
|
||||
OnClick = actSearchExecute
|
||||
end
|
||||
object MenuItem29: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
@ -1935,6 +1926,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
Caption = 'Exit'
|
||||
DisableIfNoHandler = True
|
||||
OnExecute = actExitExecute
|
||||
ShortCut = 16499
|
||||
end
|
||||
object actExport: TAction
|
||||
Caption = 'Save generated files ...'
|
||||
@ -1968,11 +1960,13 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
Caption = '&Refresh Views'
|
||||
DisableIfNoHandler = True
|
||||
OnExecute = actRefreshViewExecute
|
||||
ShortCut = 116
|
||||
end
|
||||
object actNewFile: TAction
|
||||
Caption = 'New File'
|
||||
DisableIfNoHandler = True
|
||||
OnExecute = actNewFileExecute
|
||||
ShortCut = 16462
|
||||
end
|
||||
object actCompoundCreate: TAction
|
||||
Caption = 'Create Class Type'
|
||||
@ -2021,6 +2015,13 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
DisableIfNoHandler = True
|
||||
OnExecute = actRecordCreateExecute
|
||||
end
|
||||
object actSearch: TAction
|
||||
Caption = 'Search'
|
||||
DisableIfNoHandler = True
|
||||
OnExecute = actSearchExecute
|
||||
OnUpdate = actSearchUpdate
|
||||
ShortCut = 16454
|
||||
end
|
||||
end
|
||||
object OD: TOpenDialog
|
||||
Title = 'Ouvrir un fichier existant'
|
||||
@ -2113,6 +2114,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
Action = actRefreshView
|
||||
OnClick = actRefreshViewExecute
|
||||
end
|
||||
object MenuItem49: TMenuItem
|
||||
Action = actSearch
|
||||
OnClick = actSearchExecute
|
||||
end
|
||||
object MenuItem19: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
@ -2157,4 +2162,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
|
||||
left = 466
|
||||
top = 252
|
||||
end
|
||||
object FD: TFindDialog
|
||||
Title = 'Search'
|
||||
OnFind = FDFind
|
||||
left = 576
|
||||
top = 143
|
||||
end
|
||||
end
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
|
||||
|
||||
LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
|
||||
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#2'T'#6'Height'
|
||||
+#3#132#2#3'Top'#3';'#1#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18'Vert'
|
||||
+'ScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+[Web '
|
||||
+'Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'ClientWi'
|
||||
+'dth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7#8
|
||||
+'FormShow'#8'Position'#7#15'poDesktopCenter'#0#10'TStatusBar'#2'SB'#6'Height'
|
||||
+#2#23#3'Top'#3'Y'#2#5'Width'#3'A'#3#6'Panels'#14#1#5'Width'#3','#1#0#1#5'Wid'
|
||||
+'th'#2'2'#0#0#11'SimplePanel'#8#0#0#6'TPanel'#6'Panel1'#6'Height'#3'Y'#2#5'W'
|
||||
+'idth'#3':'#1#5'Align'#7#6'alLeft'#12'ClientHeight'#3'Y'#2#11'ClientWidth'#3
|
||||
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#166#0#6'Hei'
|
||||
+'ght'#3#132#2#3'Top'#3#209#0#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18
|
||||
+'VertScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+['
|
||||
+'Web Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'Clie'
|
||||
+'ntWidth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7
|
||||
+#8'FormShow'#8'Position'#7#15'poDesktopCenter'#0#10'TStatusBar'#2'SB'#6'Heig'
|
||||
+'ht'#2#23#3'Top'#3'Y'#2#5'Width'#3'A'#3#6'Panels'#14#1#5'Width'#3','#1#0#1#5
|
||||
+'Width'#2'2'#0#0#11'SimplePanel'#8#0#0#6'TPanel'#6'Panel1'#6'Height'#3'Y'#2#5
|
||||
+'Width'#3':'#1#5'Align'#7#6'alLeft'#12'ClientHeight'#3'Y'#2#11'ClientWidth'#3
|
||||
+':'#1#8'TabOrder'#2#0#0#9'TTreeView'#9'trvSchema'#4'Left'#2#1#6'Height'#3'W'
|
||||
+#2#3'Top'#2#1#5'Width'#3'8'#1#5'Align'#7#8'alClient'#17'DefaultItemHeight'#2
|
||||
+#15#9'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'#2#0#0#0#0#6'TPanel'#6'Panel2'#4
|
||||
@ -22,17 +22,166 @@ 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'#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
|
||||
+'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'#0#8'TSynEdit'#7
|
||||
+'srcWSDL'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.C'
|
||||
+'harSet'#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'P'
|
||||
+'opupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'6'
|
||||
+#24'BookMarkOptions.OnChange'#13#22'Gutter.ShowLineNumbers'#9#15'Gutter.OnCh'
|
||||
+'ange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'
|
||||
+#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'S'
|
||||
+'hortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8
|
||||
+'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0
|
||||
+#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8
|
||||
+'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8
|
||||
+'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8
|
||||
+'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8
|
||||
+'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8
|
||||
+'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8
|
||||
+'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'S'
|
||||
+'hortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8
|
||||
+'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'S'
|
||||
+'hortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8
|
||||
+'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'S'
|
||||
+'hortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8
|
||||
+'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201
|
||||
+#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3
|
||||
+#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman'
|
||||
+'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7
|
||||
+'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8
|
||||
+#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1
|
||||
+#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3
|
||||
+#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
|
||||
+'nd'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7
|
||||
+'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0
|
||||
+#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X'
|
||||
+'@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC'
|
||||
+'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S'
|
||||
+'hortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1
|
||||
+#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3
|
||||
+'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Comman'
|
||||
+'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C'
|
||||
+'ommand'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1
|
||||
+#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'
|
||||
+#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3
|
||||
+'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu'
|
||||
+'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh'
|
||||
+'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1
|
||||
+#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3
|
||||
+#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
|
||||
+'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7
|
||||
+'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'
|
||||
+#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'#13#0#0#0#9'TTabSheet'#7'tsProx'
|
||||
+'y'#7'Caption'#6#6'&Proxy'#0#8'TSynEdit'#8'srcProxy'#6'Height'#3'='#2#5'Widt'
|
||||
+'h'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Fo'
|
||||
+'nt.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'F'
|
||||
+'ont.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'T'
|
||||
+'abOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#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
|
||||
+'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#0#8'TSynEdit'#6'srcImp'#6
|
||||
+'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12
|
||||
+'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.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
|
||||
+'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
|
||||
@ -44,56 +193,7 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
|
||||
+#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
|
||||
+'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'
|
||||
,'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
|
||||
@ -116,270 +216,172 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
|
||||
+#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'#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
|
||||
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
|
||||
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
|
||||
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
|
||||
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
|
||||
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
|
||||
+#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
|
||||
+'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
|
||||
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
|
||||
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
|
||||
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
|
||||
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
|
||||
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
|
||||
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
|
||||
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
|
||||
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
|
||||
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
|
||||
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
|
||||
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
|
||||
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
|
||||
,#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
|
||||
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
|
||||
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
|
||||
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
|
||||
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
|
||||
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
|
||||
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
|
||||
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
|
||||
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
|
||||
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
|
||||
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
|
||||
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
|
||||
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#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'#8'ShortCut'#3'O@'#0#0
|
||||
+#7'TAction'#7'actExit'#7'Caption'#6#4'Exit'#18'DisableIfNoHandler'#9#9'OnExe'
|
||||
+'cute'#7#14'actExitExecute'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save'
|
||||
+' generated files ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExportE'
|
||||
+'xecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Capt'
|
||||
+'ion'#6#5'About'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExecute'
|
||||
+#0#0#7'TAction'#9'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfNoHand'
|
||||
+'ler'#9#9'OnExecute'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'
|
||||
+#0#0#7'TAction'#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#18'Dis'
|
||||
+'ableIfNoHandler'#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAction'#15
|
||||
+'actUpdateObject'#7'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9'OnExecut'
|
||||
+'e'#7#22'actUpdateObjectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0
|
||||
+#7'TAction'#14'actRefreshView'#7'Caption'#6#14'&Refresh Views'#18'DisableIfN'
|
||||
+'oHandler'#9#9'OnExecute'#7#21'actRefreshViewExecute'#0#0#7'TAction'#10'actN'
|
||||
+'ewFile'#7'Caption'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17
|
||||
+'actNewFileExecute'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6#17'Cre'
|
||||
,'ate Class Type'#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actCompoundCreat'
|
||||
+'eExecute'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Interface'
|
||||
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAct'
|
||||
+'ion'#13'actFullExpand'#7'Caption'#6#11'Full expand'#18'DisableIfNoHandler'#9
|
||||
+#9'OnExecute'#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFullCollapse'#7
|
||||
+'Caption'#6#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'act'
|
||||
+'FullCollapseExecute'#0#0#7'TAction'#7'actSave'#7'Caption'#6#4'Save'#18'Disa'
|
||||
+'bleIfNoHandler'#9#9'OnExecute'#7#14'actSaveExecute'#8'ShortCut'#3'S@'#0#0#7
|
||||
+'TAction'#9'actDelete'#7'Caption'#6#6'Delete'#18'DisableIfNoHandler'#9#9'OnE'
|
||||
+'xecute'#7#16'actDeleteExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7
|
||||
+'TAction'#14'actArrayCreate'#7'Caption'#6#12'Create Array'#18'DisableIfNoHan'
|
||||
+'dler'#9#9'OnExecute'#7#21'actArrayCreateExecute'#0#0#7'TAction'#18'actTypeA'
|
||||
+'LiasCreate'#7'Caption'#6#17'Create Type ALias'#18'DisableIfNoHandler'#9#9'O'
|
||||
+'nExecute'#7#25'actTypeALiasCreateExecute'#0#0#7'TAction'#15'actRecordCreate'
|
||||
+#7'Caption'#6#13'Create Record'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'a'
|
||||
+'ctRecordCreateExecute'#0#0#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'ofPath'
|
||||
+'MustExist'#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'
|
||||
+#3#153#1#3'top'#2'X'#0#0#10'TSynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'Comme'
|
||||
+'ntAttri.Foreground'#7#6'clBlue'#18'CommentAttri.Style'#11#6'fsBold'#0#22'St'
|
||||
+'ringAttri.Foreground'#7#8'clMaroon'#17'SymbolAttri.Style'#11#6'fsBold'#0#25
|
||||
+'DirectiveAttri.Foreground'#7#7'clGreen'#20'DirectiveAttri.Style'#11#6'fsBol'
|
||||
+'d'#0#14'NestedComments'#9#4'left'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2
|
||||
+'SD'#5'Title'#6#27'Enregistrer le fichier sous'#10'DefaultExt'#6#5'.WSDL'#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'to'
|
||||
+'p'#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'actFul'
|
||||
+'lCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#9'TMenuItem'#10'Menu'
|
||||
+'Item39'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecut'
|
||||
+'e'#0#0#9'TMenuItem'#10'MenuItem26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'Men'
|
||||
+'uItem8'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'
|
||||
+#0#0#9'TMenuItem'#10'MenuItem21'#6'Action'#7#17'actCompoundCreate'#7'OnClick'
|
||||
+#7#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem46'#6'Action'#7
|
||||
+#15'actRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'
|
||||
+#10'MenuItem24'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateE'
|
||||
+'xecute'#0#0#9'TMenuItem'#10'MenuItem37'#6'Action'#7#14'actArrayCreate'#7'On'
|
||||
+'Click'#7#21'actArrayCreateExecute'#0#0#9'TMenuItem'#10'MenuItem38'#6'Action'
|
||||
+#7#18'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'T'
|
||||
+'MenuItem'#10'MenuItem22'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6
|
||||
+'Action'#7#15'actUpdateObject'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9
|
||||
+'TMenuItem'#10'MenuItem33'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actDelet'
|
||||
+'eExecute'#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
|
||||
+'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6#1'-'#0#0
|
||||
+#9'TMenuItem'#10'MenuItem20'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExp'
|
||||
+'ortExecute'#0#0#9'TMenuItem'#10'MenuItem40'#7'Caption'#6#1'-'#0#0#9'TMenuIt'
|
||||
+'em'#10'MenuItem41'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayC'
|
||||
+'reateExecute'#0#0#9'TMenuItem'#10'MenuItem45'#6'Action'#7#17'actCompoundCre'
|
||||
+'ate'#7'OnClick'#7#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem'
|
||||
+'47'#6'Action'#7#15'actRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'
|
||||
+#0#0#9'TMenuItem'#10'MenuItem44'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7
|
||||
+#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem43'#6'Action'#7#13'act'
|
||||
+'IntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuI'
|
||||
+'tem42'#6'Action'#7#18'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreat'
|
||||
+'eExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6#30'Docume'
|
||||
+'nts WSDL (*.wsdl)|*.wsdl'#7'Enabled'#8#23'ElementAttri.Foreground'#7#6'clNa'
|
||||
+'vy'#30'AttributeValueAttri.Foreground'#7#8'clPurple'#16'WantBracesParsed'#8
|
||||
+#4'left'#3#210#1#3'top'#3#252#0#0#0#0
|
||||
+'TabSheet'#8'tsBinder'#7'Caption'#6#7'&Binder'#0#8'TSynEdit'#9'srcBinder'#6
|
||||
+'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12
|
||||
+'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'
|
||||
+#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10
|
||||
+'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#15'Gutter.Auto'
|
||||
+'Size'#9#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.Sh'
|
||||
+'owCodeFolding'#9#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynP'
|
||||
+'asSyn1'#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'S'
|
||||
+'hortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8
|
||||
+'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201
|
||||
+#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3
|
||||
+#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman'
|
||||
+'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7
|
||||
+'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8
|
||||
+#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1
|
||||
+#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3
|
||||
+#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
|
||||
+'nd'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7
|
||||
+'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0
|
||||
+#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X'
|
||||
+'@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC'
|
||||
+'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S'
|
||||
+'hortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1
|
||||
+#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3
|
||||
+'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Comman'
|
||||
+'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C'
|
||||
+'ommand'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1
|
||||
+#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'
|
||||
,#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3
|
||||
+'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu'
|
||||
+'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh'
|
||||
+'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1
|
||||
+#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3
|
||||
+#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
|
||||
+'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7
|
||||
+'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'
|
||||
+#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#5'tsLog'#7'Caption'#6#4'&Log'#0#5'TMem'
|
||||
+'o'#6'mmoLog'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#13'Li'
|
||||
+'nes.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'Colo'
|
||||
+'r'#7#7'clBlack'#11'ParentColor'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3'`'
|
||||
+#1#3'top'#2'p'#0#9'TMenuItem'#9'MenuItem1'#7'Caption'#6#6'&Files'#0#9'TMenuI'
|
||||
+'tem'#10'MenuItem16'#6'Action'#7#10'actNewFile'#7'OnClick'#7#17'actNewFileEx'
|
||||
+'ecute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'M'
|
||||
+'enuItem5'#6'Action'#7#11'actOpenFile'#7'OnClick'#7#18'actOpenFileExecute'#0
|
||||
+#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExp'
|
||||
+'ortExecute'#0#0#9'TMenuItem'#9'MenuItem7'#6'Action'#7#7'actSave'#7'OnClick'
|
||||
+#7#14'actSaveExecute'#0#0#9'TMenuItem'#10'MenuItem32'#6'Action'#7#9'actSaveA'
|
||||
+'s'#7'OnClick'#7#16'actSaveAsExecute'#0#0#9'TMenuItem'#10'MenuItem17'#7'Capt'
|
||||
+'ion'#6#1'-'#0#0#9'TMenuItem'#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'MenuItem15'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21
|
||||
+'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem50'#6'Action'#7#9'actSea'
|
||||
+'rch'#7'OnClick'#7#16'actSearchExecute'#0#0#9'TMenuItem'#10'MenuItem29'#7'Ca'
|
||||
+'ption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem30'#6'Action'#7#13'actFullExpand'
|
||||
+#7'OnClick'#7#20'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem31'#6'Act'
|
||||
+'ion'#7#15'actFullCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#0#9
|
||||
+'TMenuItem'#10'MenuItem10'#7'Caption'#6#8'&Edition'#0#9'TMenuItem'#10'MenuIt'
|
||||
+'em11'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0
|
||||
+#0#9'TMenuItem'#10'MenuItem23'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7
|
||||
+#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem48'#6'Action'#7#15
|
||||
+'actRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10
|
||||
+'MenuItem25'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExec'
|
||||
+'ute'#0#0#9'TMenuItem'#10'MenuItem35'#6'Action'#7#14'actArrayCreate'#7'OnCli'
|
||||
+'ck'#7#21'actArrayCreateExecute'#0#0#9'TMenuItem'#10'MenuItem36'#6'Action'#7
|
||||
+#18'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMe'
|
||||
+'nuItem'#10'MenuItem12'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem13'#6
|
||||
+'Action'#7#15'actUpdateObject'#7'Caption'#6#13'Update Object'#7'OnClick'#7#22
|
||||
+'actUpdateObjectExecute'#0#0#9'TMenuItem'#10'MenuItem34'#6'Action'#7#9'actDe'
|
||||
+'lete'#7'OnClick'#7#16'actDeleteExecute'#0#0#0#9'TMenuItem'#9'MenuItem6'#6'A'
|
||||
+'ction'#7#8'actAbout'#7'Caption'#6#6'&About'#7'OnClick'#7#15'actAboutExecute'
|
||||
+#0#0#0#11'TActionList'#2'AL'#4'left'#3'X'#1#3'top'#2'8'#0#7'TAction'#11'actO'
|
||||
+'penFile'#7'Caption'#6#9'Open File'#18'DisableIfNoHandler'#9#9'OnExecute'#7
|
||||
+#18'actOpenFileExecute'#8'ShortCut'#3'O@'#0#0#7'TAction'#7'actExit'#7'Captio'
|
||||
+'n'#6#4'Exit'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actExitExecute'#8'S'
|
||||
+'hortCut'#3's@'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save generated f'
|
||||
+'iles ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExportExecute'#8'On'
|
||||
+'Update'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'Abo'
|
||||
+'ut'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TActi'
|
||||
+'on'#9'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfNoHandler'#9#9'On'
|
||||
+'Execute'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAc'
|
||||
+'tion'#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#18'DisableIfNoH'
|
||||
+'andler'#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAction'#15'actUpda'
|
||||
+'teObject'#7'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22
|
||||
+'actUpdateObjectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TActi'
|
||||
+'on'#14'actRefreshView'#7'Caption'#6#14'&Refresh Views'#18'DisableIfNoHandle'
|
||||
+'r'#9#9'OnExecute'#7#21'actRefreshViewExecute'#8'ShortCut'#2't'#0#0#7'TActio'
|
||||
+'n'#10'actNewFile'#7'Caption'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExe'
|
||||
+'cute'#7#17'actNewFileExecute'#8'ShortCut'#3'N@'#0#0#7'TAction'#17'actCompou'
|
||||
+'ndCreate'#7'Caption'#6#17'Create Class Type'#18'DisableIfNoHandler'#9#9'OnE'
|
||||
+'xecute'#7#24'actCompoundCreateExecute'#0#0#7'TAction'#13'actIntfCreate'#7'C'
|
||||
+'aption'#6#16'Create Interface'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'a'
|
||||
,'ctIntfCreateExecute'#0#0#7'TAction'#13'actFullExpand'#7'Caption'#6#11'Full '
|
||||
+'expand'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actFullExpandExecute'#0#0
|
||||
+#7'TAction'#15'actFullCollapse'#7'Caption'#6#13'Full Collapse'#18'DisableIfN'
|
||||
+'oHandler'#9#9'OnExecute'#7#22'actFullCollapseExecute'#0#0#7'TAction'#7'actS'
|
||||
+'ave'#7'Caption'#6#4'Save'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actSav'
|
||||
+'eExecute'#8'ShortCut'#3'S@'#0#0#7'TAction'#9'actDelete'#7'Caption'#6#6'Dele'
|
||||
+'te'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actDeleteExecute'#8'OnUpdate'
|
||||
+#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actArrayCreate'#7'Caption'#6
|
||||
+#12'Create Array'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'actArrayCreateE'
|
||||
+'xecute'#0#0#7'TAction'#18'actTypeALiasCreate'#7'Caption'#6#17'Create Type A'
|
||||
+'Lias'#18'DisableIfNoHandler'#9#9'OnExecute'#7#25'actTypeALiasCreateExecute'
|
||||
+#0#0#7'TAction'#15'actRecordCreate'#7'Caption'#6#13'Create Record'#18'Disabl'
|
||||
+'eIfNoHandler'#9#9'OnExecute'#7#22'actRecordCreateExecute'#0#0#7'TAction'#9
|
||||
+'actSearch'#7'Caption'#6#6'Search'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16
|
||||
+'actSearchExecute'#8'OnUpdate'#7#15'actSearchUpdate'#8'ShortCut'#3'F@'#0#0#0
|
||||
+#11'TOpenDialog'#2'OD'#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'TSynP'
|
||||
+'asSyn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlue'
|
||||
+#18'CommentAttri.Style'#11#6'fsBold'#0#22'StringAttri.Foreground'#7#8'clMaro'
|
||||
+'on'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'DirectiveAttri.Foreground'#7#7
|
||||
+'clGreen'#20'DirectiveAttri.Style'#11#6'fsBold'#0#14'NestedComments'#9#4'lef'
|
||||
+'t'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2'SD'#5'Title'#6#27'Enregistrer '
|
||||
+'le fichier sous'#10'DefaultExt'#6#5'.WSDL'#6'Filter'#6#25'WDSL files(*.WSDL'
|
||||
+')|*.WSDL'#11'FilterIndex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEnable'
|
||||
+'Sizing'#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'T'
|
||||
+'MenuItem'#10'MenuItem27'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7#22'ac'
|
||||
+'tFullCollapseExecute'#0#0#9'TMenuItem'#10'MenuItem39'#6'Action'#7#14'actRef'
|
||||
+'reshView'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuIt'
|
||||
+'em26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actEnu'
|
||||
+'mCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem'
|
||||
+'21'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExec'
|
||||
+'ute'#0#0#9'TMenuItem'#10'MenuItem46'#6'Action'#7#15'actRecordCreate'#7'OnCl'
|
||||
+'ick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem24'#6'Action'
|
||||
+#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'
|
||||
+#10'MenuItem37'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreat'
|
||||
+'eExecute'#0#0#9'TMenuItem'#10'MenuItem38'#6'Action'#7#18'actTypeALiasCreate'
|
||||
+#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuItem22'#7
|
||||
+'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpdateObjec'
|
||||
+'t'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'#10'MenuItem33'#6
|
||||
+'Action'#7#9'actDelete'#7'OnClick'#7#16'actDeleteExecute'#0#0#0#10'TPopupMen'
|
||||
+'u'#10'PopupMenu2'#4'left'#3#16#2#3'top'#3#235#0#0#9'TMenuItem'#10'MenuItem1'
|
||||
+'8'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecute'#0#0
|
||||
+#9'TMenuItem'#10'MenuItem49'#6'Action'#7#9'actSearch'#7'OnClick'#7#16'actSea'
|
||||
+'rchExecute'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6#1'-'#0#0#9'TMenuIt'
|
||||
+'em'#10'MenuItem20'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExecut'
|
||||
+'e'#0#0#9'TMenuItem'#10'MenuItem40'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'Me'
|
||||
+'nuItem41'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExec'
|
||||
+'ute'#0#0#9'TMenuItem'#10'MenuItem45'#6'Action'#7#17'actCompoundCreate'#7'On'
|
||||
+'Click'#7#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem47'#6'Act'
|
||||
+'ion'#7#15'actRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TM'
|
||||
+'enuItem'#10'MenuItem44'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEn'
|
||||
+'umCreateExecute'#0#0#9'TMenuItem'#10'MenuItem43'#6'Action'#7#13'actIntfCrea'
|
||||
+'te'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem42'#6
|
||||
+'Action'#7#18'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'
|
||||
+#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6#30'Documents WSDL ('
|
||||
+'*.wsdl)|*.wsdl'#7'Enabled'#8#23'ElementAttri.Foreground'#7#6'clNavy'#30'Att'
|
||||
+'ributeValueAttri.Foreground'#7#8'clPurple'#16'WantBracesParsed'#8#4'left'#3
|
||||
+#210#1#3'top'#3#252#0#0#0#11'TFindDialog'#2'FD'#5'Title'#6#6'Search'#6'OnFin'
|
||||
+'d'#7#6'FDFind'#4'left'#3'@'#2#3'top'#3#143#0#0#0#0
|
||||
]);
|
||||
|
@ -39,6 +39,7 @@ type
|
||||
actFullCollapse: TAction;
|
||||
actDelete : TAction;
|
||||
actArrayCreate : TAction;
|
||||
actSearch : TAction;
|
||||
actRecordCreate : TAction;
|
||||
actTypeALiasCreate : TAction;
|
||||
actSave : TAction;
|
||||
@ -48,6 +49,7 @@ type
|
||||
actSaveAs: TAction;
|
||||
actOpenFile: TAction;
|
||||
AL: TActionList;
|
||||
FD : TFindDialog;
|
||||
MainMenu1: TMainMenu;
|
||||
MenuItem10: TMenuItem;
|
||||
MenuItem11: TMenuItem;
|
||||
@ -88,7 +90,9 @@ type
|
||||
MenuItem46 : TMenuItem;
|
||||
MenuItem47 : TMenuItem;
|
||||
MenuItem48 : TMenuItem;
|
||||
MenuItem49 : TMenuItem;
|
||||
MenuItem5: TMenuItem;
|
||||
MenuItem50 : TMenuItem;
|
||||
MenuItem6: TMenuItem;
|
||||
MenuItem7 : TMenuItem;
|
||||
MenuItem8: TMenuItem;
|
||||
@ -138,9 +142,12 @@ type
|
||||
procedure actRefreshViewExecute(Sender: TObject);
|
||||
procedure actSaveAsExecute(Sender: TObject);
|
||||
procedure actSaveExecute (Sender : TObject );
|
||||
procedure actSearchExecute(Sender : TObject);
|
||||
procedure actSearchUpdate(Sender : TObject);
|
||||
procedure actTypeALiasCreateExecute(Sender : TObject);
|
||||
procedure actUpdateObjectExecute(Sender: TObject);
|
||||
procedure actUpdateObjectUpdate(Sender: TObject);
|
||||
procedure FDFind(Sender : TObject);
|
||||
procedure FormClose (Sender : TObject; var CloseAction : TCloseAction );
|
||||
procedure FormShow(Sender: TObject);
|
||||
private
|
||||
@ -148,6 +155,8 @@ type
|
||||
FStatusMessageTag : PtrInt;
|
||||
FCurrentFileName : string;
|
||||
{$IFDEF WST_IDE}FProjectLibrary : TLazProjectFile;{$ENDIF}
|
||||
private
|
||||
function Search(const AText : string) : Boolean;
|
||||
private
|
||||
function GetTypeNode() : TTreeNode;
|
||||
function GetInterfaceNode() : TTreeNode;
|
||||
@ -170,7 +179,7 @@ implementation
|
||||
uses view_helper, DOM, XMLRead, XMLWrite, //HeapTrc,
|
||||
xsd_parser, wsdl_parser, source_utils, command_line_parser, generator, metadata_generator,
|
||||
binary_streamer, wst_resources_utils, xsd_generator, wsdl_generator,
|
||||
uabout, edit_helper, udm, ufrmsaveoption, pparser
|
||||
uabout, edit_helper, udm, ufrmsaveoption, pparser, SynEditTypes
|
||||
{$IFDEF WST_IDE},LazIDEIntf,IDEMsgIntf{$ENDIF};
|
||||
|
||||
|
||||
@ -444,6 +453,16 @@ begin
|
||||
actSaveAs.Execute() ;
|
||||
end;
|
||||
|
||||
procedure TfWstTypeLibraryEdit.actSearchExecute(Sender : TObject);
|
||||
begin
|
||||
FD.Execute();
|
||||
end;
|
||||
|
||||
procedure TfWstTypeLibraryEdit.actSearchUpdate(Sender : TObject);
|
||||
begin
|
||||
TAction(Sender).Enabled := ( PC.ActivePageIndex in [0..4] );
|
||||
end;
|
||||
|
||||
procedure TfWstTypeLibraryEdit.actTypeALiasCreateExecute(Sender : TObject);
|
||||
var
|
||||
e : TPasAliasType;
|
||||
@ -485,6 +504,12 @@ begin
|
||||
HasEditor(TPasElement(trvSchema.Selected.Data));
|
||||
end;
|
||||
|
||||
procedure TfWstTypeLibraryEdit.FDFind(Sender : TObject);
|
||||
begin
|
||||
if not Search(FD.FindText) then
|
||||
ShowMessageFmt('Unable to find "%s".',[FD.FindText]);
|
||||
end;
|
||||
|
||||
procedure TfWstTypeLibraryEdit.FormClose (Sender : TObject; var CloseAction : TCloseAction );
|
||||
var
|
||||
dlgRes : Integer;
|
||||
@ -537,6 +562,33 @@ begin
|
||||
RenderSymbols();
|
||||
end;
|
||||
|
||||
function TfWstTypeLibraryEdit.Search(const AText : string) : Boolean;
|
||||
var
|
||||
edt : TSynEdit;
|
||||
opts : TSynSearchOptions;
|
||||
begin
|
||||
Result := False;
|
||||
case PC.ActivePageIndex of
|
||||
0 : edt := srcInterface;
|
||||
1 : edt := srcWSDL;
|
||||
2 : edt := srcProxy;
|
||||
3 : edt := srcImp;
|
||||
4 : edt := srcBinder;
|
||||
else
|
||||
edt := nil;
|
||||
end;
|
||||
if Assigned(edt) then begin
|
||||
opts := [];
|
||||
if not ( frDown in FD.Options ) then
|
||||
Include(opts,ssoBackwards);
|
||||
if ( frMatchCase in FD.Options ) then
|
||||
Include(opts,ssoMatchCase);
|
||||
if ( frWholeWord in FD.Options ) then
|
||||
Include(opts,ssoWholeWord);
|
||||
Result := edt.SearchReplace(AText,'',opts) <> 0;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TfWstTypeLibraryEdit.GetTypeNode(): TTreeNode;
|
||||
begin
|
||||
Result := trvSchema.TopItem.GetFirstChild().Items[0];
|
||||
|
@ -1594,9 +1594,9 @@ var
|
||||
trueAncestor := ultimAnc;
|
||||
end;
|
||||
if trueAncestor.InheritsFrom(TPasNativeSimpleType) and
|
||||
Assigned(TPasNativeSimpleType(trueAncestor).BoxedType)
|
||||
Assigned(TPasNativeSimpleType(trueAncestor).ExtendableType)
|
||||
then begin
|
||||
trueAncestor := TPasNativeSimpleType(trueAncestor).BoxedType;
|
||||
trueAncestor := TPasNativeSimpleType(trueAncestor).ExtendableType;
|
||||
end;
|
||||
s := Format('%s',[trueAncestor.Name]);
|
||||
end else begin
|
||||
|
@ -144,18 +144,30 @@ type
|
||||
end;
|
||||
|
||||
TPasClassTypeClass = class of TPasClassType;
|
||||
TPasNativeClassType = class(TPasClassType) end;
|
||||
TPasNativeSimpleContentClassType = class;
|
||||
|
||||
{ TPasNativeClassType }
|
||||
|
||||
TPasNativeClassType = class(TPasClassType)
|
||||
private
|
||||
FExtendableType : TPasNativeSimpleContentClassType;
|
||||
public
|
||||
destructor Destroy();override;
|
||||
procedure SetExtendableType(AExtendableType : TPasNativeSimpleContentClassType);
|
||||
property ExtendableType : TPasNativeSimpleContentClassType read FExtendableType;
|
||||
end;
|
||||
|
||||
TPasNativeSimpleContentClassType = class(TPasNativeClassType) end;
|
||||
|
||||
{ TPasNativeSimpleType }
|
||||
|
||||
TPasNativeSimpleType = class(TPasType)
|
||||
private
|
||||
FBoxedType: TPasNativeSimpleContentClassType;
|
||||
FExtendableType: TPasNativeSimpleContentClassType;
|
||||
public
|
||||
destructor Destroy();override;
|
||||
procedure SetBoxedType(ABoxedType : TPasNativeSimpleContentClassType);
|
||||
property BoxedType : TPasNativeSimpleContentClassType read FBoxedType;
|
||||
procedure SetExtendableType(AExtendableType : TPasNativeSimpleContentClassType);
|
||||
property ExtendableType : TPasNativeSimpleContentClassType read FExtendableType;
|
||||
end;
|
||||
|
||||
function GetParameterIndex(
|
||||
@ -200,11 +212,17 @@ const
|
||||
('Double', 'TComplexFloatDoubleContentRemotable', 'double'),
|
||||
('Extended', 'TComplexFloatExtendedContentRemotable', 'decimal')
|
||||
);
|
||||
BOXED_TYPES_COUNT = 1;
|
||||
BOXED_TYPES : Array[0..Pred(BOXED_TYPES_COUNT)] Of array[0..2] of string = (
|
||||
('TBase64StringRemotable', 'TBase64StringExtRemotable', 'base64Binary')
|
||||
);
|
||||
|
||||
|
||||
procedure AddSystemSymbol(
|
||||
ADest : TPasModule;
|
||||
AContainer : TwstPasTreeContainer
|
||||
);
|
||||
procedure RegisterSimpleTypes();
|
||||
var
|
||||
i : Integer;
|
||||
splTyp : TPasNativeSimpleType;
|
||||
@ -225,21 +243,60 @@ begin
|
||||
ADest.InterfaceSection.Declarations.Add(syb);
|
||||
ADest.InterfaceSection.Types.Add(splTyp);
|
||||
end;
|
||||
splTyp.SetBoxedType(syb);
|
||||
splTyp.SetExtendableType(syb);
|
||||
end;
|
||||
end;
|
||||
for i := Low(SIMPLE_TYPES) to High(SIMPLE_TYPES) do begin
|
||||
//splTyp := AContainer.FindElementInModule(SIMPLE_TYPES[i][0],ADest) as TPasNativeSimpleType;
|
||||
splTyp := typlst[i];
|
||||
if not IsStrEmpty(SIMPLE_TYPES[i][2]) then begin
|
||||
AContainer.RegisterExternalAlias(splTyp,SIMPLE_TYPES[i][2]);
|
||||
if ( splTyp.BoxedType <> nil ) then begin
|
||||
AContainer.RegisterExternalAlias(splTyp.BoxedType,SIMPLE_TYPES[i][2]);
|
||||
if ( splTyp.ExtendableType <> nil ) then begin
|
||||
AContainer.RegisterExternalAlias(splTyp.ExtendableType,SIMPLE_TYPES[i][2]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure RegisterBoxedTypes();
|
||||
var
|
||||
i : Integer;
|
||||
nativeType : TPasNativeClassType;
|
||||
syb : TPasNativeSimpleContentClassType;
|
||||
s : string;
|
||||
typlst : array[0..Pred(BOXED_TYPES_COUNT)] of TPasNativeClassType;
|
||||
begin
|
||||
for i := Low(BOXED_TYPES) to High(BOXED_TYPES) do begin
|
||||
nativeType := TPasNativeClassType(AContainer.CreateElement(TPasNativeClassType,BOXED_TYPES[i][0],ADest.InterfaceSection,visPublic,'',0));
|
||||
ADest.InterfaceSection.Declarations.Add(nativeType);
|
||||
ADest.InterfaceSection.Types.Add(nativeType);
|
||||
typlst[i] := nativeType;
|
||||
s := BOXED_TYPES[i][1];
|
||||
if not IsStrEmpty(s) then begin
|
||||
syb := AContainer.FindElementInModule(BOXED_TYPES[i][1],ADest) as TPasNativeSimpleContentClassType;
|
||||
if not Assigned(syb) then begin
|
||||
syb := TPasNativeSimpleContentClassType(AContainer.CreateElement(TPasNativeSimpleContentClassType,s,ADest.InterfaceSection,visDefault,'',0));
|
||||
ADest.InterfaceSection.Declarations.Add(syb);
|
||||
ADest.InterfaceSection.Types.Add(syb);
|
||||
end;
|
||||
nativeType.SetExtendableType(syb);
|
||||
end;
|
||||
end;
|
||||
for i := Low(BOXED_TYPES) to High(BOXED_TYPES) do begin
|
||||
nativeType := typlst[i];
|
||||
if not IsStrEmpty(BOXED_TYPES[i][2]) then begin
|
||||
AContainer.RegisterExternalAlias(nativeType,BOXED_TYPES[i][2]);
|
||||
if ( nativeType.ExtendableType <> nil ) then begin
|
||||
AContainer.RegisterExternalAlias(nativeType.ExtendableType,BOXED_TYPES[i][2]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
RegisterSimpleTypes();
|
||||
RegisterBoxedTypes();
|
||||
end;
|
||||
|
||||
function CreateWstInterfaceSymbolTable(AContainer : TwstPasTreeContainer) : TPasModule;
|
||||
function AddClassDef(
|
||||
ATable : TPasModule;
|
||||
@ -325,7 +382,7 @@ begin
|
||||
AddAlias('float','Single',Result);
|
||||
AddAlias('nonNegativeInteger','LongWord',Result);
|
||||
AddAlias('positiveInteger','nonNegativeInteger',Result);
|
||||
AddAlias('base64Binary','string',Result);
|
||||
//AddAlias('base64Binary','string',Result);
|
||||
except
|
||||
FreeAndNil(Result);
|
||||
raise;
|
||||
@ -908,24 +965,47 @@ end;
|
||||
|
||||
destructor TPasNativeSimpleType.Destroy();
|
||||
begin
|
||||
if Assigned(FBoxedType) then begin
|
||||
FBoxedType.Release();
|
||||
FBoxedType := nil
|
||||
if Assigned(FExtendableType) then begin
|
||||
FExtendableType.Release();
|
||||
FExtendableType := nil
|
||||
end;
|
||||
inherited Destroy();
|
||||
end;
|
||||
|
||||
procedure TPasNativeSimpleType.SetBoxedType(
|
||||
ABoxedType : TPasNativeSimpleContentClassType
|
||||
procedure TPasNativeSimpleType.SetExtendableType(
|
||||
AExtendableType : TPasNativeSimpleContentClassType
|
||||
);
|
||||
begin
|
||||
if ( FBoxedType <> ABoxedType ) then begin
|
||||
if ( FBoxedType <> nil ) then begin
|
||||
FBoxedType.Release();
|
||||
if ( FExtendableType <> AExtendableType ) then begin
|
||||
if ( FExtendableType <> nil ) then begin
|
||||
FExtendableType.Release();
|
||||
end;
|
||||
FBoxedType := ABoxedType;
|
||||
if ( FBoxedType <> nil ) then
|
||||
FBoxedType.AddRef();
|
||||
FExtendableType := AExtendableType;
|
||||
if ( FExtendableType <> nil ) then
|
||||
FExtendableType.AddRef();
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TPasNativeClassType }
|
||||
|
||||
destructor TPasNativeClassType.Destroy();
|
||||
begin
|
||||
if Assigned(FExtendableType) then begin
|
||||
FExtendableType.Release();
|
||||
FExtendableType := nil
|
||||
end;
|
||||
inherited Destroy();
|
||||
end;
|
||||
|
||||
procedure TPasNativeClassType.SetExtendableType(AExtendableType : TPasNativeSimpleContentClassType);
|
||||
begin
|
||||
if ( FExtendableType <> AExtendableType ) then begin
|
||||
if ( FExtendableType <> nil ) then begin
|
||||
FExtendableType.Release();
|
||||
end;
|
||||
FExtendableType := AExtendableType;
|
||||
if ( FExtendableType <> nil ) then
|
||||
FExtendableType.AddRef();
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -379,8 +379,11 @@ begin
|
||||
FBaseType := (FBaseType as TPasAliasType).DestType;
|
||||
end;
|
||||
if FBaseType.InheritsFrom(TPasNativeSimpleType) then begin
|
||||
Assert(Assigned(TPasNativeSimpleType(FBaseType).BoxedType));
|
||||
FBaseType := TPasNativeSimpleType(FBaseType).BoxedType;
|
||||
Assert(Assigned(TPasNativeSimpleType(FBaseType).ExtendableType));
|
||||
FBaseType := TPasNativeSimpleType(FBaseType).ExtendableType;
|
||||
end else if FBaseType.InheritsFrom(TPasNativeClassType) then begin
|
||||
if Assigned(TPasNativeClassType(FBaseType).ExtendableType) then
|
||||
FBaseType := TPasNativeClassType(FBaseType).ExtendableType;
|
||||
end;
|
||||
end else begin
|
||||
raise EXsdParserException.CreateFmt('"%s" was expected to be a type definition.',[locSymbol.Name]);
|
||||
|
Reference in New Issue
Block a user