Das wird in der Tat schwierig. Ich hatte vor einiger Zeit mal eine ähnliche Anforderung, bei dem das
Checked mehrerer Einträge direkt nacheinander geändert werden sollte. Wenn dabei das Menü bei jedem
Click zu geht ist das schon lästig. Ich konnte aber keine Lösung auf Basis eines Standard Popupmenüs finden, da Windows da sehr tief involviert ist und es meines Wissens sowas nicht unterstützt.
Der wesentliche Teil spielt sich in der Windows-
API TrackPopupMenu ab und in der entsprechenden Doku steht:
Zitat:
The window does not receive a WM_COMMAND message from the menu until the function returns.
Es ist aber aktuell so implementiert, dass das
Click des MenuItems innerhalb dieser WM_COMMAND Message ausgeführt wird. Da ist das Menü aber schon geschlossen und
TrackPopupMenu bereits beendet.
Man müsste also das komplette PopupMenu implementieren um das gewünschte Verhalten zu erreichen. Als Grundlage könnte hier die Implementierung von
TPopupActionBar dienen. Das braucht aber auch noch ein gehöriges Mass an Anpassung und somit auch Verständnis dieser Implementierung.