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 PopupMenu-Item->Rechtsklick (https://www.delphipraxis.net/19539-popupmenu-item-rechtsklick.html)

gothic_mike 5. Apr 2004 11:01


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...

Christian Seehase 5. Apr 2004 17:48

Re: PopupMenu-Item->Rechtsklick
 
Moin Gothic Mike,

Zitat:

Zitat von gothic_mike
Also, sowas wie das Favoritenmenü im IE...

das ist aber kein PopUpMenue

gothic_mike 6. Apr 2004 01:29

Re: PopupMenu-Item->Rechtsklick
 
Hi,

Zitat:

Zitat von Christian Seehase
das ist aber kein PopUpMenue

das ist mir schon klar, meine Frage war halt, ob es möglich ist, bei rechtsklick auf ein Menuitem von einem normalen TPopupMenu, ein weiteres Popupmenu zu öffnen...
das mit dem FavMenu war nur als Beispiel...

teebee 6. Apr 2004 09:23

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

alcaeus 6. Apr 2004 09:44

Re: PopupMenu-Item->Rechtsklick
 
Dann erhält der Benutzer aber den Eindruck, nicht auf das Element klicken zu können...

Nicodius 6. Apr 2004 10:27

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:
 
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;
Start1 ist ein Eintrag im ersten Popup ;)

s14 6. Apr 2004 10:50

Re: PopupMenu-Item->Rechtsklick
 
Hallo zusammen,
also die Position des Popupmenüs würde ich anders ermitteln:

Delphi-Quellcode:
var p : TPoint;
begin
  if GetCursorPos(p)
    then PopupMenu1.Popup(p.X, p.Y);
Wäre es nicht auch überlegenswert die Komponente TMenuItem um das Ereignis OnMouseDown zu erweitern??

Christian Seehase 6. Apr 2004 19:02

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.

gothic_mike 7. Apr 2004 09:20

Re: PopupMenu-Item->Rechtsklick
 
Hallo zusammen,

Zitat:

Zitat von Christian Seehase
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.

scheint so, als währe diese möglichkeit die am ehesten zu relisierende...

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!

Christian Seehase 7. Apr 2004 21:38

Re: PopupMenu-Item->Rechtsklick
 
Moin Gothic Mike,

Zitat:

Zitat von gothic_mike
das mit dem untermenu fält flach, weil das ganze soll von der bedienung her so sein, wie's Startmenü oder das Favoritenmenü...

:shock:

Das sind doch ganz normale Untermenüs :gruebel:

gothic_mike 8. Apr 2004 23:42

Re: PopupMenu-Item->Rechtsklick
 
Hallo zusammen,

Zitat:

Zitat von Christian Seehase
Moin Gothic Mike,

Zitat:

Zitat von gothic_mike
das mit dem untermenu fält flach, weil das ganze soll von der bedienung her so sein, wie's Startmenü oder das Favoritenmenü...

:shock:

Das sind doch ganz normale Untermenüs :gruebel:

Ja, die Untermenüs schon, nur eben das Start- oder Favorietenmenü nicht, die haben ein Event für den Rechtsklick,
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...

DerAndereMicha 18. Jul 2008 12:48

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

Larsi 18. Jul 2008 13:08

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?

DerAndereMicha 18. Jul 2008 13:14

Re: PopupMenu-Item->Rechtsklick
 
Das hatte ich schon mittels
Delphi-Quellcode:
GetKeyState(VK_RBUTTON) <> 0
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.

_frank_ 18. Jul 2008 13:49

Re: PopupMenu-Item->Rechtsklick
 
erster treffer be google:
http://entwickler-forum.de/archive/i...p/t-37273.html

HTH Frank

DerAndereMicha 21. Jul 2008 12:32

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