Einzelnen Beitrag anzeigen

4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#1

WSDL Dynamische Arrays als Property und Setlength ???

  Alt 22. Feb 2013, 10:22
Hi Leute,
habe nen problem beim WSDL Importieren,
Un zwar schmeisst der sowas raus, wie das auf der wiki von emba
http://docwiki.embarcadero.com/RADSt...DL-Option_-Or-

also:
Code:
type aerie = array of string;

type
  raptorInfo = class //class(TRemotable)
  private
    FHawks: aerie;
  published
    property Hawks: aerie read FHawks write FHawks;
  end;
Das problem ist wenn man jetzt was dem Array Hawks zuweisen will geht das ja nicht, weil
es ja ein Property vom typ array ist und nicht z.b. sowas:
Code:
property Hawks[Index: Integer]: string read GetAerieStr write SetAerieStr;
Das heisst ich kann mit dem Teil aus dem emba Beispiel kann doch auch garnix anfangen,
das gleiche wie bei meinem WSDL...

Weil:

Code:
procedure TFMain.Button2Click(Sender: TObject);
var r:raptorInfo;
begin
  r:=raptorInfo.Create;
  try
    //SetLength(r.Hawks,1); //= [dcc32 Fehler] uFMain.pas(198): E2197 Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
    r.Hawks[0]:='asd'; //= Exception, da die länge von Hawks = 0, ist ja nirgengs die länge gesetzt worden
  finally
    r.Free;
  end;

end;
Wie kann man auf array properties zugreifen, OHNE die Klasse zu verändern?
Ich weiss ich könnte ja die implementierung mit Getter, Setter für das Array anlegen,
aber da das nen bisl kompliziertere WSDL files sind, und evlt nochn paar mal verändert werden
will ich nix an dem WSDL import ändern, sondern möglichst alles nur duch ableiten usw.
Leider Kann man mit dem Class Helper (ich benutz xe3..) nicht auf private Felder zugreifen

Irgendeine Idee?
  Mit Zitat antworten Zitat