TCustomForm::OnResize wird bei Programmende aufgerufen
-
Hi,
ich glaub die Überschrift sagt schon viel ^^. Ich hab gesucht, seltsamerweise nix gefunden.
Problem ist nämlich dass das Event TCustomForm::OnResize bei Programmende aufgerufen wird, und das möchte ich nicht haben. Weil es Fehler verursacht ^^.
Wie kann ich das verhindern?
-
Ich würde lieber die Anwendung so umschreiben das sie keine Fehler mehr verursacht.
-
Das habe ich versucht.
Also ich hab nämlich neben der Form mit dem OnResize Event noch eine andere Form.
Das sieht ungefähr so aus:MainForm::Resize(..) { [...] if(Frame_twF!=NULL) Frame_twF->RefreshBounds(); }
Problem: Wenn das programm beendet wird und das ResizeEvent aufgerufen wird, existiert die From Frame_twF anscheinend nicht mehr. Und das verursacht natürlich Fehler - die if(Frame_twF!=NULL) Abfrage hat leider nix geholfen, das hat mich dazu gebracht halt nach einer anderen Lösung zu suchen _.
-
Hallo
der Fehler liegt wahrscheinlich daran, das Frame_twF schon gelöscht wurde (durch die App), aber eben nicht NULL ist.
Entweder sorgst du dafür, das Frame_twF nach dem Löschen NULL ist, oder du merkst dir, wenn MainForm geschlossen wird, also die App beendet werden wird, und fragst diesen Status vor der Aktualisierung von Frame_twF ab in OnResize ab.bis bald
akari
-
Entweder sorgst du dafür, das Frame_twF nach dem Löschen NULL ist
Kann ich das so machen (funktionieren tut es shcon, aber ich bin mir nicht ganz sicher ob das Memory Leaks verursacht oder nicht):
TFrame_twF::OnDestroy(...){ Frame_twF = NULL; }
-
Hallo
das es funktioniert, wundert mich. Ich würde es nicht so machen.
Aber zum Thema OnDestroy, das hatten wir erst vor kurzem :
http://www.c-plusplus.net/forum/viewtopic.php?t=96491&start=10
ganz unten.bis bald
akari
-
Also soll ich das Frame_twF = NULL in dem Destruktor der Form setzen?