Thema: Delphi Zeiger freigeben

Einzelnen Beitrag anzeigen

TomDooley

Registriert seit: 26. Jan 2004
124 Beiträge
 
#1

Zeiger freigeben

  Alt 16. Jun 2005, 19:42
Hallo

Beim Freigeben von Zeiger habe ich nicht ganz den Durchblick. Gegeben ist folgender Code (von zwei Klassen):

Delphi-Quellcode:
function TTestClassA.getListe: TList;
var
  List : TList;
  PTestRecord : ^TTestRecord;
begin
  new(PTestRecord);
  List := TList.Create;
  PTestRecord^.FeldA := 'Hallo';
  PTestRecord^.FeldB := 'Test';
  PTestRecord^.FeldC := 1;
  List.Add(PTestRecord);
  Result := List;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  List : TList;
  TestClassA : TTestClassA;
  PTestRecord : ^TTestRecord;
begin
  TestClassA := TTestClassA.Create;
  List := TestClassA.getListe;
  PTestRecord := List.Items[0];
  Label1.Caption := PTestRecord^.FeldA;
  Dispose(PTestRecord);
end;
Soll ich nun den Zeiger wie ich's gemacht habe in der zweiten Funktion disposen oder macht man in solchen Fällen in der TestClassA eine Prozedur, die dann einfach dispose(PTestRecord) aufruft (und in der Button1Click-Prozedur aufgerufen wird)?
Die selbe Frage stellt sich natürlich auch wenn man statt mit TList mit TObjectList arbeiten würde (und dann Objekte auflistet). Dann würde aber nur der Weg über eine Funktion der Klasse TTestClassA funtktionieren, oder?

Ich wäre froh wenn mir jemand den "Standardweg" aufzeigen könnte.

Danke und Gruss

Tom
  Mit Zitat antworten Zitat