Prüfen ob ein Popupmenu angezeigt wird
Verfasst: 18.07.2019 13:03
Irgendwie finde ich hier keine Lösung. Ich erstelle dynamisch ein PopupMenu von einer XML und lege die Zeiger zu den XML-Einträgen in einer Liste ab um diese bei Klick nachher auszuwerten. Dafür habe ich einen Tastatur-Shortcut drangebunden um das Popup zu generieren und anzuzeigen.
Wenn jetzt das Popupmenü bereits angezeigt wird und man trotzdem nochmal den Tastenbefehl zum öffnen des Popups drückt stürzt meine Software halt ab, da das momentan angezeigte Popup noch nicht freigegeben wurde. Soweit so klar.
Zwar kann ich beim Anzeigen des Menüs eine "Bin-Da!"-Variable auf 1 setzen und nach Anklicken eines Eintrages diese auch wieder auf 0 setzen - aber was mach ich, wenn das Popup ohne Auswahl geschlossen wird durch einfaches danebenklicken. In dem Fall gibt es meines Wissens nach weder ein Event dafür noch eine Abfragefunktion, die prüft ob ein PopupMenü momentan angezeigt wird oder nicht.
Scheiße - irgendwas überseh ich da oder? Ich kann mir schon denken, dass es irgendwie mit API und Windowfunktionen gehen kann. Sprich das Top-Window handle abfragen oder so. Aber irgendwie gefällt mir das nicht.
IsMenu() hilft ja auch nicht, da es ja nach wie vor existiert und nur nicht angezeigt wird. Man, so eine IsPopupDisplayed(PopupID) Funktion würde PB gerade echt gut stehen
Wenn jetzt das Popupmenü bereits angezeigt wird und man trotzdem nochmal den Tastenbefehl zum öffnen des Popups drückt stürzt meine Software halt ab, da das momentan angezeigte Popup noch nicht freigegeben wurde. Soweit so klar.
Zwar kann ich beim Anzeigen des Menüs eine "Bin-Da!"-Variable auf 1 setzen und nach Anklicken eines Eintrages diese auch wieder auf 0 setzen - aber was mach ich, wenn das Popup ohne Auswahl geschlossen wird durch einfaches danebenklicken. In dem Fall gibt es meines Wissens nach weder ein Event dafür noch eine Abfragefunktion, die prüft ob ein PopupMenü momentan angezeigt wird oder nicht.
Scheiße - irgendwas überseh ich da oder? Ich kann mir schon denken, dass es irgendwie mit API und Windowfunktionen gehen kann. Sprich das Top-Window handle abfragen oder so. Aber irgendwie gefällt mir das nicht.
IsMenu() hilft ja auch nicht, da es ja nach wie vor existiert und nur nicht angezeigt wird. Man, so eine IsPopupDisplayed(PopupID) Funktion würde PB gerade echt gut stehen
