Re: Fenster erstellt bzw. sichtbar !?
22. Apr 2007, 13:33
Zusammenfassung des Threads:
1. Wenn du Release aufrufst, dann setzt dieses deine globale Variable der Form nicht auf NIL zurück und deine nächsten Abfragen auf Nil sagen, dass die Instanz existiert (da eine alte Adresse drin steht in der Variablen) und damit rufst eine tote Instanz auf.
2. Self ist die Instanz der Klasse in der du dich gerade befindest. Wenn du nun eine Form instanziierst und Self als Owner übergibst, dann wird das Formular bei der Freigabe deines Formulars (wo du es erstellst) mit freigegeben. Bei Application, wenn diese beendet wird. Bei letzterem kann es aber zu Problemen kommen: Ich habe es in meiner App nun grundsätzlich unterlassen Dialoge und andere Formulare (bis auf die MainForm) mit dem Application anzulegen, da es beim Schliessen der Applikation sehr oft zu Abstürzen kam. Grund dafür war einfach nur, dass TApplication die Formulare in einer (zufälligen) Reihenfolge abräumt wo dann Formulare nicht mehr existieren obwohl sie früher/später als andere Formulare gebaut wurden. Wenn ein Formular in einer anderen Klasse instaziiert wurde und an der gleichen Stelle beim abräumen des "Parents" auch wieder freigegeben wurde, dann knallte es deftig mit Application als Owner.
|