Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komponente verschiedene Popupmenus zuweisen (https://www.delphipraxis.net/182148-komponente-verschiedene-popupmenus-zuweisen.html)

Captnemo 4. Okt 2014 11:30

Delphi-Version: XE4

Komponente verschiedene Popupmenus zuweisen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich will meiner Komponente Urlaubskalender verschiedene Popupmenus über den ObjectInspector zuweisen lassen, und zwar eins für den linken Bereich, wo die Namen stehen, eins für die Datumsfelder oben und eins für das Grid. Wie mach man sowas? Der Komponente generell ein Popupmenu zuweise ist kein Problem, aber ich weiß nicht wir ich das für die jeweiligen Zeichenbereiche mache. Die jeweiligen Bereiche sind Paintboxen.
Aufteilung ist so wie in dem Bild.

Metschu 4. Okt 2014 13:24

AW: Komponente verschiedene Popupmenus zuweisen
 
Moin!

Ich würde mit "onMouseDown" prüfen,
  • wo sich die Maus befindet (x,y)
  • welche Maustaste gedrückt wurde
und dann das entsprechenden PopUp-Menü öffnen.

Noch nie gemacht und weiß nicht obs klappt, aber das wäre mal meine Versuche ob Theorie und Praxis passen :)

stahli 4. Okt 2014 15:33

AW: Komponente verschiedene Popupmenus zuweisen
 
Was genau ist Dein Problem?

Du kannst die Eigenschaften PopupMenuLeft und PopupMenuRight analog PopupMenu einrichen.
Beim Zeichnen Deiner Komponente und bei Änderungen der Popup-Zuweisungen (im Setter) weist Du den gewünschten Controls das jeweilige PopupMenu zu.

Wenn die Bereiche kein Handle haben wird es schwieriger - so wie Metschu sagt.
Dann musst Du das Mausereignis abfangen und selbst eins Deiner PopupMenus an einer Mausposition öffnen.

himitsu 4. Okt 2014 18:35

AW: Komponente verschiedene Popupmenus zuweisen
 
Man kann im OnMouseMove an dem Popup-Property rumspielen, aber das kann eventuell mal nicht richtig "zeitlich" positiniert sein.

Man kann im OnMouseUp selber manuell die Delphi-Referenz durchsuchenPopup-Methode vom Popup aufrufen und dann natürlich nicht das Popup beim Popup-Property anhängen.
Aber eigentlich wäre es besser im WM_MENU (oder wie die Message heißt) auf das Popup-Event zu reagieren, denn ein Popup kann man nicht nur durch Mausklick aufrufen.

Man kann im OnPopup des "einen" Popups die sichtbarkeit der Items entsprechend der aktuellen Funktion sichtbar machen, bzw. die entsprechenden Items dynamisch erstellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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