Thema: Delphi Zeiger freigeben

Einzelnen Beitrag anzeigen

TomDooley

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

Re: Zeiger freigeben

  Alt 20. Jun 2005, 12:19
Ich hab's mal selbst probiert:

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

procedure TTestClassA.Destroy;
begin
  Dispose(PTestRecord);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  List : TList;
  TestClassA : TTestClassA;
  PTestRecordKopie : ^TTestRecord;
begin
  TestClassA := TTestClassA.Create;
  List := TestClassA.getListe;
  PTestRecordKopie := List.Items[0];
  Label1.Caption := PTestRecordKopie^.FeldA;
  List.Free;
  TestClassA.Destroy;
end;
PTestRecord in TTestClassA müsste als Membervariable von TTestClassA definiert werden damit sie in Destroy zerstört werden kann.
Stimmt das so?

Danke und Gruss

Tom
  Mit Zitat antworten Zitat