Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Halte PopupMenu nach Klick auf Item offen

  Alt 4. Jan 2024, 12:22
Gibt es eine Möglichkeit ein PopupMenu offen zu halten, selbst nachdem auf ein TMenuItem geklickt wurde?

Ich erzeuge die TMenuItems selber und weise ein OnClick-Event zu. In diesem Event habe ich das hier mal ausprobiert.
Delphi-Quellcode:
 ... handle click ...

 Pos := TPopupMenu((Sender as TMenuItem).GetParentMenu).PopupPoint;
 TPopupMenu((Sender as TMenuItem).GetParentMenu).PopUp(Pos.X, Pos.Y);
Nach einem Klick auf ein TMenuItem wird das PopupMenu geschlossen und danach sofort wieder geöffnet. Das sieht man leider und es flackert kurz.
Geht das auch anders, ohne dass das PopupMenu zu geht?
Für sowas ist ein popup Menu schlicht nicht vorgesehen und daher die falsche Wahl für so eine Anforderung. Dafür verwende lieber ein modales Form. Wenn es sich mehr wie ein popup menu verhalten soll (d. h. automatisch schließen wenn der Benutzer außerhalb klickt, die Caption des alten Forms aktiv lassen) ist etwas mehr Arbeit notwendig. Ich habe sowas mal für eine größere Anwendung implementiert, siehe Archiv in der Anlage. Leider hat der Kode zu viele Abhängigkeiten mit anderen Units meiner Kodebibliothek, daher kannst Du ihn nicht direkt verwenden. Aber vielleicht gibt er dir eine paar Anregungen...
Angehängte Dateien
Dateityp: zip popupforms.zip (8,4 KB, 2x aufgerufen)
Peter Below
  Mit Zitat antworten Zitat