![]() |
PopupMenu-Item->Rechtsklick
Hallo zusammen,
ich habe ein Problem mit dem PopupMenu, ist es irgendwie möglich, wenn man auf ein Item rechts-klickt, ein weiteres PopupMenu anzuzeigen, bei normalem linksklick soll die aktion ausgefürt werden? Also, sowas wie das Favoritenmenü im IE... Wenn ja, wie? Danke schonmal... |
Re: PopupMenu-Item->Rechtsklick
Moin Gothic Mike,
Zitat:
|
Re: PopupMenu-Item->Rechtsklick
Hi,
Zitat:
das mit dem FavMenu war nur als Beispiel... |
Re: PopupMenu-Item->Rechtsklick
Was hälst Du von einem Untermenü? Geht zwar auch von alleine auf, aber vielleicht ist das ja für Dich ok.
Gruß, teebee |
Re: PopupMenu-Item->Rechtsklick
Dann erhält der Benutzer aber den Eindruck, nicht auf das Element klicken zu können...
|
Re: PopupMenu-Item->Rechtsklick
hmm du könntest das ganze vertstecken :D ist ein bisschen aufwand aber schau mal:
du brauchst ein TMainMenu(wenn nicht eh schon vorhanden) und 2 Popupmenus In das Mainmenu machst du einen versteckten eintrag welcehr das 2 Popup auffahrt. und wenn du beim ersten den einen Menüeintrag anklickst dann öffnet sich das Popup :) .. musst halt die Koordinaten abfragen.. geht sicher leichter aber ES GEHT :D so gehts einfach :
Delphi-Quellcode:
Start1 ist ein Eintrag im ersten Popup ;)var X1,Y1 : Integer; implementation {$R *.dfm} procedure TForm1.START1Click(Sender: TObject); begin Popupmenu2.Popup(X1+Form1.left+20,Y1+Form1.top+40); end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin X1 := X; Y1 := Y; end; |
Re: PopupMenu-Item->Rechtsklick
Hallo zusammen,
also die Position des Popupmenüs würde ich anders ermitteln:
Delphi-Quellcode:
Wäre es nicht auch überlegenswert die Komponente TMenuItem um das Ereignis OnMouseDown zu erweitern??
var p : TPoint;
begin if GetCursorPos(p) then PopupMenu1.Popup(p.X, p.Y); |
Re: PopupMenu-Item->Rechtsklick
Moin Zusammen,
auf jeden Fall lassen sich nicht beide gleichzeitig anzeigen, da normalerweise nur ein Popupmenü zur Zeit im System angezeigt werden kann. Am besten hiesse das wohl mit "normalen" Forms so etwas nachzubauen. |
Re: PopupMenu-Item->Rechtsklick
Hallo zusammen,
Zitat:
das mit dem untermenu fält flach, weil das ganze soll von der bedienung her so sein, wie's Startmenü oder das Favoritenmenü... Danke an alle, die mir geantwortet haben! |
Re: PopupMenu-Item->Rechtsklick
Moin Gothic Mike,
Zitat:
Das sind doch ganz normale Untermenüs :gruebel: |
Re: PopupMenu-Item->Rechtsklick
Hallo zusammen,
Zitat:
dieses eben gibt es nicht beim TPopupMenu... also, irgendwie bin ich zu blöd, das problem genau zu beschreiben, ich versuchs nochmal: Ich habe ein Menü (TPopupMenu), da stehen z.B. Internetprovider drinn Bsp: - Arcor - 1und1 - Freenet - etc... bei nem Klick auf den entsprechenden Anbieter soll mit selbigem verbunden werden (ist ja auch kein problem), nun soll der Benutzer aber die Möglichkeit haben, die Einstellungen anzupassen etc. per Submenu (ebenfalls ein TPopupMenu) Bsp: - Verbinden - Trennen --------------- - Eigenschaften und zwar soll dieses bei einem Rechtsklick auf den Anbierter aufklappen, nur habe ich keinen Plassen Schimmer, wie ich an das Rechtsklick-Event eines Menuitems rankomme... |
Re: PopupMenu-Item->Rechtsklick
Hallo Zusammen,
ich stehe gerade vor dem selben Problem, welches hier der Gothic Mike schon vor 4 Jahren hatte. Leider hat wohl damals keiner eine Lösung gefunden. Vielleicht hat ja heute einer ne Idee dazu ... Gruß Micha |
Re: PopupMenu-Item->Rechtsklick
Könntest du nicht einfach beim generellen klicken auf das item abfragen ob mit linker oder rechter maustaste geklickt wurde und spezifisch reagieren?
|
Re: PopupMenu-Item->Rechtsklick
Das hatte ich schon mittels
Delphi-Quellcode:
versucht, aber leider scheint das irgendwie nicht immer richtig zu funktionieren, d.h. in 50% der Clicks wird dann auch bei der linken Maustaste die rechte erkannt - warum auch immer.
GetKeyState(VK_RBUTTON) <> 0
|
Re: PopupMenu-Item->Rechtsklick
|
Re: PopupMenu-Item->Rechtsklick
Und wie soll mir das bitte helfen?
Zum Zeitpunkt des OnClick-Ereignisses habe ich die Maustaste doch schon wieder losgelassen, da kommt mit 1x GetAssyncKeyState sowohl bei der rechten als auch bei der linken Maustaste 1 raus. Wenn ich 2x GetAssyncKeyState (und den Puffer somit vorher lösche) kommt bei beiden Tasten 0 raus. Es ist also keine Unterscheidung möglich, oder verstehe ich was falsch? Gruß Micha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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