![]() |
TPopUpMenu *nicht* modal anzeigen
Hallo,
mit folgendem Code wird ein TPopupMenu modal angezeigt. D.h. die Zeile nach dem Popup wird erst aufgerufen, nachdem das Menü geschlossen ist. Das Programm soll jedoch nach Popup sofort weiter laufen und wie hier im Beispiel EineFunktion aufrufen, ohne auf einen Mausklick vom User zu warten. Hat jemand eine Idee? Sinn des ganzen ist, dass ich ein PopUpMenu programmgesteuert öffnen und auch programmgesteuert, ohne weitere User-Interaktion, wieder schließen möchte/muss.
Delphi-Quellcode:
APopUpMenu.Popup(10, 50);
EineFunktion; |
AW: TPopUpMenu *nicht* modal anzeigen
Ein TPopupMenu.Popup ist nun mal modal, da kann man nichts dran ändern. Also entweder kein Popup oder die nötigen Tasks in einen TThread verlagern und in dessen OnTerminate-Event das Popup-Menü mit EndMenu schließen.
|
AW: TPopUpMenu *nicht* modal anzeigen
Vorher 'nen Timer starten und in dessen Timerereignis EineFunktion; aufrufen?
Wird bei APopUpMenu.Popup(10, 50); das Ereignis OnPopup ausgelöst? Dann dort EineFunktion; aufrufen? Kurzer Test mit Delphi 7 ergab, dass die zweite Variante funktionieren müsst. Variante eins scheint auch zu funktionieren. Ob damit eine gezielte Programmsteuerung möglich ist, weiß ich nicht. |
AW: TPopUpMenu *nicht* modal anzeigen
Wie jetzt?
Zitat:
Dinge verzögert/parallel starten: Timer, PostMessage, TThread.ForceQueue oder eben "richtig" asynchron in einem Thread. Bei der Vaiante mit dem Timeout (nach x Sekunden zu) wäre der Timer doch passend. |
AW: TPopUpMenu *nicht* modal anzeigen
Falls es so ist wie @himitsu sagt.
Hier ein einfaches Beispiele. Scheint wohl nicht das richtige zu sein daher entfernt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 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