Thema: Delphi Fragen zu TList

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 

Re: Fragen zu TList

  Alt 1. Mär 2004, 07:54
TList ist eigentlich ja nur eine Liste von Pointern. Das heißt du musst dich selbst um den speicher kümmern und den dann auch wieder freigeben. (anstelle von dem Record kannst du auch nen String nehmen)

Delphi-Quellcode:
type
  Pmyrecord = ^TmyRecord; //Pointer auf unseren eigentlichen Typ
  Tmyrecord = record //das ist unser eigentlicher Typ
    wert1: Integer;
    wert2: Integer;
    wert3: Byte;
  end;
var mylist: TList; //unsere TList in der wir die Pointer speichern
    myrecord: PMyRecord; //zeiger auf unseren Typ
begin
  mylist := TList.Create; //erstmal die Liste erzeugen
  new(myrecord); //dann holen wir uns soviel speicher wie "myrecord" benötigt und lassen myrecord auf den geholten speicher zeigen
  mylist.Add(myrecord); //unseren pointer in die liste eintragen
  [...] //irgendwas machen
  myrecord := mylist.Items[0]; //lassen myrecord wieder auf unseren speicher zeigen
  myrecord^.wert1 := 3455; //und können jetzt die daten davon ändern (dach kann bei diesem beispiel auch weggelassen werden)
  myrecord^.wert2 := 5347;
  myrecord^.wert3 := 75;
  [...] //machen wieder irgendwas anderes
  dispose(mylist.Items[0]); //jetzt müssen wir den speicher wieder freigeben den wir am Anfang mit "new" geholt haben
  mylist.Free; //und zu guter letzt können wir noch unsere liste wieder freigeben - READY
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat