Einzelnen Beitrag anzeigen

Marphy

Registriert seit: 24. Feb 2005
162 Beiträge
 
Delphi 7 Professional
 
#5

Re: Freigabe eines Objektes wenn keine Referenz mehr drauf z

  Alt 30. Sep 2005, 14:46
Hallo Thebe,
statt class functions solltest du vielleicht lieber Konstruktoren nutzen, aber das musst du selbst wissen.

Zu dem Problem selbst:
Nur um zwei Vektoren zu subtrahieren, brauchst du ja keine Klasse, da würde eine einfache Funktion voll und ganz genügen. Da es aber nur ein kleines Beispiel ist, kann ich das nicht so pauschal behaupten.

Ansonsten würde ich das vielleicht so machen:

1) Listenklasse implementieren oder TObjectList nutzen
2) Beim Beginn einer Routine, die Vektoren nutzt, wird die Klasse erstellt, bei deren Ende wieder zerstört.
3) Alle innerhalb der Routine genutzten Vektoren werden z.B. auf folgende Weise erstellt:
Delphi-Quellcode:
procedure MyProc();
var
  Lst: TMyListClass;
  V1,
  V2: TMyVectorClass;
begin
  Lst.Create();
  [...]
  V1 := Lst.Add();
  V2 := Lst.Add();
  [...]
  Lst.Free();
end;
4) Die Add-Methode erstellt jeweils eine neue Vektoren-Instanz, fügt sie der Liste hinzu und gibt sie zurück.
5) Durch Lst.Free() werden alle Objekte in der Liste freigegeben.

Ich hoffe, ich konnte dir wenigstens einen Denkanstoß geben

Gruß, Marco
Marco
Wo ein Wille ist, ist auch ein Weg. Aber wo ein Weg ist, ist nicht unbedingt auch ein Wille...
  Mit Zitat antworten Zitat