Einzelnen Beitrag anzeigen

Hausmarke

Registriert seit: 5. Apr 2013
Ort: Sachsen
47 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Auslesen TObjectlist - rückgabewert von T.ObjectList.Add immer 0

  Alt 25. Jun 2013, 12:26
@Blup: ja super besten dank, jetzt funktioniert es

@Christian:
du hast vollkommen recht, die Freigabe der Objekte in diesem Beispiel ist "problematisch", zudem die Objekte in einer ganz anderen stelle, quasi in einer anderen unit erzeugt werden.
Wenn ich es richtig verstanden habe, hat das setzen der Objectlist auf Nil keinerlei Auswirkungen auf die Existenz der darin abgelegten Objects, da nur die Zeigerposition in der liste gespeichert wird.

allerdings kann ich die objects vor dem auslesen der liste nicht freigeben. ich müsste also eine Art destructor prozedur basteln, die ich nach dem auslesen aufrufe, und welche mir die objects in der objectlist löscht.

oder gibt es eine andere Möglichkeit?

EDIT: leider ist der Rückgabewert von Objectlist.Add noch immer permanent "0"

EDIT:
ich schätze so dürfte es funktionieren die Objects in der Liste und anschließend die Liste selbst auf nil zu setzen:

Delphi-Quellcode:
var
u : TMeinObject;
w : TObjectlist;
.
.
.
  begin
    for I := 0 to w.Count - 1 do
    begin
      u :=(W[0]) as TMeinObject;
      StringGrid1.Cells[0,i+1] := IntToStr(u.ID);
      StringGrid1.Cells[1,i+1] := IntToStr(U.Wert);
      StringGrid1.Cells[2,i+1] := U.Content;
      w.Delete(0);
    end;
  end;
  w.free;

Geändert von Hausmarke (25. Jun 2013 um 12:35 Uhr)
  Mit Zitat antworten Zitat