Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Festestellen ob MainMenu in Benutzung (https://www.delphipraxis.net/214879-festestellen-ob-mainmenu-benutzung.html)

Hobbycoder 28. Mär 2024 12:05

Festestellen ob MainMenu in Benutzung
 
Hi,

gibt es irgendeine Möglichkeit festzustellen, ob das MainManu gerade in Benutzung ist?
Der Grund: Ich updatete in regelmäßigen Intervallen einige Untermenus einiger MenuItems (es werden welche entfernt oder hinzugefügt). Wennn nun der Benutzer aber gerade diese offen hat, wir beim aktualisieren das Menu geschlossen. Deswegen würde ich gerne vorher prüfen, ob der Benutzer diese Menus gerade offen hat oder überhaupt im Menu irgendwas offen hat, um die Aktualisierung auf eine späteren Zeitpunkt zu verschieben.
Idealerweise wäre natürlich auch interessant, wenn der Benutzer dann das Mainmenu verlässt.

Sinspin 28. Mär 2024 12:55

AW: Festestellen ob MainMenu in Benutzung
 
:shock: Muss man für sowas wirklich im Forum fragen anstatt einfach mal in die Hilfe zu sehen?

Überwache einfach via OnPopup und OnClose ob das Menu offen ist.

Hobbycoder 28. Mär 2024 13:01

AW: Festestellen ob MainMenu in Benutzung
 
Muss man die Frage wirklich genau lesen:shock:
Ja, muss man:

Nicht TPopupMenu sondern TMainMenu

DeddyH 28. Mär 2024 15:32

AW: Festestellen ob MainMenu in Benutzung
 
Ich habe es nicht ausprobiert, aber wäre das vielleicht ein Ansatz? WM_INITMENUPOPUP

peterbelow 28. Mär 2024 16:12

AW: Festestellen ob MainMenu in Benutzung
 
Zitat:

Zitat von Hobbycoder (Beitrag 1535078)
Muss man die Frage wirklich genau lesen:shock:
Ja, muss man:

Nicht TPopupMenu sondern TMainMenu

Siehe WM_ENTERMENULOOP und den Counterpart WM_EXITMENULOOP. Damit sollte sich tracken lassen, ob die Anwendung gerade ein Menu aktiv hat.

Gausi 29. Mär 2024 07:26

AW: Festestellen ob MainMenu in Benutzung
 
Wenn sich eines der Hauptmenü-Untermenüs öffnet, dann wird das OnClick-Event ausgelöst - auch wenn man nicht wirklich klickt. An der Stelle kannst du dann die Items im Menu noch anpassen.

Hobbycoder 2. Apr 2024 11:28

AW: Festestellen ob MainMenu in Benutzung
 
Zitat:

Zitat von peterbelow (Beitrag 1535092)
Siehe WM_ENTERMENULOOP und den Counterpart WM_EXITMENULOOP. Damit sollte sich tracken lassen, ob die Anwendung gerade ein Menu aktiv hat.

Das war es, was ich suchte. WM_INITMENUPOPUP wird wirklich jedes mal aufgerufen, wenn ein Menupunkt erweitert wird, der Untermenus hat.
WM_ENTERMENULOOP und WM_EXITMENULOOP wird wirklich jeweils nur einmal aufgerufen. Und auch nur beim MainMenu und nicht bei den POPUP-Menus, welche auf der Form liegen.

freejay 3. Apr 2024 15:36

AW: Festestellen ob MainMenu in Benutzung
 
Wie schon Gausi gesagt hat: Man updatet die Menüeinträge in den OnClick-Ereignissen der Hauptmenüpunkte. Dann ist man immer aktuell und es werden auch keine unnötige Aktionen durch einen ständig laufenden Timer ausgeführt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz