Einzelnen Beitrag anzeigen

HalloVonMir

Registriert seit: 3. Jun 2007
4 Beiträge
 
#1

Pointer eines dynamischen Arrays übergeben

  Alt 10. Jan 2018, 15:36
Delphi-Version: 7
Hallo,

Ich möchte gerne einen Inhalt dynamisch zurückgeben, da meine Funktion mehrere Ausgaben haben soll (werden mittels Thread verarbeitet, was dann die Übergabe eines Pointers verlange). U.a. möchte ich gerne, dass eine Dateienliste übergeben wird.

Meine Typen sind:
Type
Teinedatei=record
Url:string;
Bla:integer;
...
End;
Tdateien:Array of Teinedatei;
Tdateienpointer:^Tdateien;

In einer Procedure wollte ich dann gerne die Länge festlegen und die Daten einfügen. Das funktioniert aber nicht

Procedure setzen(p:pointer);
Begin
... // Berechnung etc.
Setlength(Tdateien(p),1); //geht nicht
Setlength(p,1); // geht auch nicht
Tdateien(p)[0].url:='123'; //geht natürlich nicht
End;

Aufruf mittels:
var dateien:Tdateien;
Begin
Setzen (@dateien);
Showmessage (dateien[0].url);
End;

Wie ist dafür die richtige Syntax? Denn für einen "normalen" Pointer (Teinedateipointer) funktioniert das. Geht das wegen dem dynamischen Array garnicht, oder gibt ist dort Kniffe wie ich das machen kann?

Vielen Dank schonmal für eure Hilfe!!
  Mit Zitat antworten Zitat