Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Pointerstew totale Zeigerverwirrung
rowkajjh - Fr 27.10.06 16:24
Titel: Pointerstew totale Zeigerverwirrung
Hallo,
ich habe Objekte, die ich in einer Liste verwalte. Diese Verwaltung passiert in einer unit. Zwei Funktionen daraus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| Procedure TArticleCtrl.ClearList; var article : ^TArticle; begin
while Articles.Count>0 do begin article := Articles.Items[0]; article.Free; Articles.Delete(0); end;
end;
Function TArticleCtrl.LoadFromFile(const FileName: String): Integer; Var art : TArticle; begin art := TArticle.Create; Result := art.LoadFromFile(FileName);
if(Result = 0) then Articles.Add(art) else art.Free; end; |
Warum muß ich (muß ich?) in ClearList ^TArticle verwenden, in LoadFromFile aber TArticle. So wie ich das bisher verstanden habe, sind Objekte in Pascal immer Zeiger.
Man, bin ich verwirrt.
Danke und Tschau!
Moderiert von
AXMD: Delphi-Tags hinzugefügt
rowkajjh - Fr 27.10.06 17:47
Ach, ich glaube, ich habs.
In dem Beispiel, welches mit vorlag, war das Objekt, welches in der Liste gespeichert wurde, vom Typ record. Ich habe aber eine richtige Klasse.
Bei record muß ich mit New), Dispose und ^TRecord arbeiten, bei richtigen Objekten (Klassen) ist ja der Variablenname autom. ein pointer.
Rischtisch?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!