title image


Smiley Problem mit der Freigabe von Objekten
Hallo,

ich brauche mal wieder euren Rat.

In einer von TStringGrid abgeleiteten Komponente verwende ich TList um Referenzen auf andere Komponeten und zur Laufzeit erzeugte Objekte zu speichern

Um die selbst erzeugten Objekte wieder frei zu geben, rufe ich im destructor meiner Komponente eine Methode auf, die TList durchgeht, mit dem is-Operator auf den Typ der erzeugten Objekte prüft und ggf. diese dann frei gibt.

Nun das Problem:

Wenn das Formular beim Schliessen im OnDestroy-Ereignis den destructor meiner Komponente aufruft, dann sind einige Komponenten auf die Tlist noch verweist schon vom Formular freigegeben. Beim Durchlaufen von TList wird dann einen Zugriffsverletzung ausgelöst.

Ich habe dies bisher verhindert, indem ich die Freigabemethode im OnClose-Ereignis des Formulars aufrufe und TList auf nil setze.



Da ich die Komponente demnächst veröffentlichen möchte, ist mir diese Verfahrensweise zu gefährlich. Der separate Aufruf könnte vergessen werden.



Hat jemand eine Idee wie man das sauber lösen kann?

Für ein Paar Tips und Hinweise wäre ich sehr dankbar.

Viele Grüße
www.RaabeSoftware.de.vu "Jede Lösung eines Problems ist ein neues Problem." Johann W. von Goethe

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: