![]() |
Form schließt sich nicht mit Close
Hallo,
ich beschreibe ein Form im OnShow. Geht dabei etwas schief, soll das Form über einen Timer geschlossen werden. Habe ich schon häufig gemacht (ist nicht besonders schön aber einfach), jetzt funktioniert das nicht. Was wird denn alles abgearbeitet beim FormClose ausser FormCloseQuery? Danke, Messie |
Re: Form schließt sich nicht mit Close
Hallo,
warum nimmst du einen Timer? Kannst du nicht einfach die Methode Release() anstatt Close() aufrufen? Grüße vom marabu |
Re: Form schließt sich nicht mit Close
Moin
um dennoch auf deine Frage zurückzukommen: Zitat:
![]() |
Re: Form schließt sich nicht mit Close
Was prüfst Du denn im "OnShow"? Lässt sich das nicht auch schon im "OnCreate" prüfen? Falls ja, könntest Du für den Fall, dass Du das Formular gar nicht anzeigen möchtest, eine Exception auslösen. Die musst Du dann nur im aufrufenden Formular abfangen. Dies führt insgesamt zu einer ruhigeren Bildschirmndarstellung, da das Formular erst gar nicht erscheint.
Gruß Daddy |
Re: Form schließt sich nicht mit Close
Wenn Du ein MDI-Form hast, dann geht close nicht. Dann musst Du den DialogResult setzen und die Action im OnCloseQuery auf caFree.
|
Re: Form schließt sich nicht mit Close
Zitat:
Zitat:
Zitat:
Zumal das mit dem timer schon häufig funktioniert hat, auch wenns nicht schön ist weil es doch kurz flackert. Aber ich zoome das Fenster sowieso im OnResize auf Bildschirmgröße, da flackerts gelegenlich sowieso. Vielleicht haut mir das auch dazwischen... Eine Funktion Form.OnShowQuery wäre das richtige. Grüße, Messie |
Re: Form schließt sich nicht mit Close
Warum schickst du dir nicht selbst im FormShow eine Message, die dann dein FormClose aufrufen kann, somit sparst du dir den Timer?
BTW: Eigentlich sollte vor dem Anzeigen der Form geprüft werden, ob alle Anforderungen erfüllt werden. Ist dies nicht möglich, dann sollte dies wenigstens nach dem FormShow im Formular passieren und entsprechend ein Hinweis auf mögliche Fehlerursachen angezeigt werden. |
Re: Form schließt sich nicht mit Close
Zitat:
|
Re: Form schließt sich nicht mit Close
Was meinst Du mit:
Zitat:
Gruß Daddy |
Re: Form schließt sich nicht mit Close
Zitat:
Delphi-Quellcode:
const
WM_CloseMeNow = WM_USER+1; type [...] private procedure FormCloseMeNow(var Msg:TMessage); message WM_CloseMeNow; public [...] procedure TForm1.FormShow(Sender: TObject); begin [...] PostMessage(Handle, WM_CloseMeNow, 0, 0); end; procedure TForm1.FormCloseMeNow(var Msg:TMessage); begin Close; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz