![]() |
Re: Dialog schließt sich nicht von selbst
Ja ist ziemlich vertrackt das ganze :? hab schon an meinem Verstand gezweifelt, weil rein von der Logik her hätte es funktionieren müssen, naja mit der Zeit findet man ein paar Macken bei Delphi :mrgreen:
|
Re: Dialog schließt sich nicht von selbst
ist dasn bug, oder ist das extra so?
|
Re: Dialog schließt sich nicht von selbst
naja, bug würd ichs nicht nenne da in einem onActivate ja kein close zu suchen hat. Nen bug wäre es wenn es AfterActivate heißen würde. Eigentlich muss es ja auch so sein weil rein theoretich nicht beim activieren etwas geschlossen werden kann denn dann wäre ja das activieren nicth vollständig. Finds eigentlich in Ordnung das es so ist wies ist. Wenn ich recht durchsehe ist es ja auch so das die activate-message ausgelöst wird, dann wird von irgendeiner funktion die close-message ausgelöst und am ende des onactivates ereignisses wird die activate-message weitergegeben... (stell ich mir zumindest so vor und somit wird nach dem close die activate-message noch weitergesendet)
|
Re: Dialog schließt sich nicht von selbst
Hallo,
Du könntest es mit PostMessage(Handle,WM_CLOSE,0,0) versuchen. Im Gegensatz zu SendMessage wartet PostMessage nicht auf irgendeine Reaktion. |
Re: Dialog schließt sich nicht von selbst
dürfte auch nicht gehen da die message ja auch schon ankommt während onActivate noch ausgeführt wird
|
Re: Dialog schließt sich nicht von selbst
Hallo,
dreh es doch einfach rum. Nimm die Message nicht für Close, sondern um die Suche zu starten. On Activate ist sowieso nicht der richtige Ort, nimm lieber OnShow und starte über die Message deine Suche. Dann kannst Du dort auch ganz locker ein Close absetzen. Viele Grüße |
Re: Dialog schließt sich nicht von selbst
Ich glaube, ich muß mich noch erklären. WM_CLOSE kannst du natürlich nicht nehmen, aber Du kannst eine eigene Message WM_STARTSEARCH erklären und eine Botschaftsbehandlungsroutine dazu schreiben.
Viele Grüße |
Re: Dialog schließt sich nicht von selbst
Moin Jens,
OnCloseQuery und OnClose werden auch aufgerufen, nur wird das Formular nicht geschlossen. Deshalb spielt es auch keine Rolle, ob Du es nun mit dem Setzen von ModalResult, einem Close, SendMessage mit WM_SYSCOMMAND/SC_CLOSE, WM_CLOSE oder Postmessage und den genannten Messages probierst ;-) @Delphianer: Erst wenn das OnShow verlassen wird, wird das Formular angzeigt. |
Re: Dialog schließt sich nicht von selbst
Das Problem beim OnShow Event ist das die Form dann noch nicht gezeichnet ist, und die StatusBar auf der Form dann recht unnütz wäre :? Ich werde mir mal bei Zeit deinen Vorschlag genauer angucken, aber zu funzt es jetzt erstmal. ;)
|
Re: Dialog schließt sich nicht von selbst
Hallo,
ist ja richtig, dass das Formular in OnShow noch nicht angezeigt wird. Wenn ich aber dort eine Message mit PostMessage absetze, dann wird die Botschaftsbehandlungsroutine erst aufgerufen, wenn der Rest fertig ist, sprich das Fenster gezeichnet ist. Ich bin aber immer wieder erstaunt, wieviele Leute die Hilfe zu OnActivate ignorieren. OnActivate wird aufgerufen, wenn das Formular den Fokus erhält, das passiert zwar bei einem modalen Formular nur einmal, kann aber bei einem nichtmodalen Formular durchaus mehrmals passieren. Viele Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 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