AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeiger freigeben

Ein Thema von TomDooley · begonnen am 16. Jun 2005 · letzter Beitrag vom 21. Jun 2005
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz