Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
21. Jun 2005
Besten Dank für den Tip. Das hört sich ja ganz interessant an. Darauf werde ich sicher noch zurückgreifen.
Das frag' ich mich auch immer mehr... :shock: Das kommt daher, weil die Datentypen z.T schon existieren. Ich werde aber sicher versuchen, ich Zukunft auf Zeiger und Records zu verzichten (schon mit TObjectList hätte ich kein Problem).
Trotzdem lässt mich jetzt mein Problem nicht mehr...
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
21. Jun 2005
Hallo alle,
das mit dem Freigeben vom Listenobjekt habe ich inzwischen so gelöst, indem ich die Liste der function getListe als var-Parameter übergebe. Es bleibt aber immer noch die Frage, wo und wann ich den mit new(PTestRecord) reservierten Speicher freigeben kann/soll... (ich denke ich kann new(PTestRecord) nicht im Konstruktor aufrufen da ich nicht weiss wie oft die Funktion getListe...
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
20. Jun 2005
Ich gehe davon aus, dass der Speicher bei Bedarf reserviert wird und nach der "Verarbeitung" gleich wieder freigegeben wird (siehe nächste Anmerkung).
Ich weiss, ich wollte damit nur demonstrieren, dass der Speicher freigegeben wird (so gesehen eine etwas schlechte Namenswahl von mir). Diese Prozedur wird also nicht beim Freigeben des Objekts sondern unmittelbar nach dem "Benutzen" von...
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
20. Jun 2005
Ich hab's mal selbst probiert:
function TTestClassA.getListe: TList;
var
List : TList;
begin
new(PTestRecord);
List := TList.Create;
PTestRecord^.FeldA := 'Hallo';
PTestRecord^.FeldB := 'Test';
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
17. Jun 2005
Tag auch
Danke erstmal für die Infos. Vielleicht erst zu den Zeigern:
Das Dispose in Button1Click ist demzufolge unnötig. Wie und vor allem wann müsste aber nun in meinem Beispiel Dispose aufgerufen werden? Sehe ich das zudem richtig dass ich mit TList ein Speicherleck geschaffen habe (List wird in getListe nicht zerstört, darf aber auch nicht sein da ansonsten in Button1Click nicht mehr...
Forum: Object-Pascal / Delphi-Language
Delphi
by TomDooley,
16. Jun 2005
Hallo
Beim Freigeben von Zeiger habe ich nicht ganz den Durchblick. Gegeben ist folgender Code (von zwei Klassen):
function TTestClassA.getListe: TList;
var
List : TList;
PTestRecord : ^TTestRecord;
begin
new(PTestRecord);