Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi PopUp-Menü mit Doppelklick öffnen (https://www.delphipraxis.net/42328-popup-menue-mit-doppelklick-oeffnen.html)

derpepe 17. Mär 2005 11:39


PopUp-Menü mit Doppelklick öffnen
 
Hallo,

ein PopUp-Menü einzubinden das sich per Rechtsklick öffnet ist ja nicht weiter schwer.
Prinzipiell dürfte es auch nicht schwer sein ein PopUp-Menü via Doppelklick zu öffnen.

Dazu kann man doch die Methode PopUp verwenden, oder liege ich da falsch!?

Nur weiß ich bei OnDblClick nicht wo das Menü aufpoppen soll und bei OnMouseDown nicht ob doppelt geklickt wurde.

Muss ich jetzt wirklich X- und Y-Koordinate in OnMouseDown speichern und dann bei OnDblClick mein Menü aufklappen oder geht das auch ohne Variablen in nur einem Event?

Danke schonmal für eure Hilfe :-)

Binärbaum 17. Mär 2005 11:43

Re: PopUp-Menü mit Doppelklick öffnen
 
Du hast die Lösung doch schon quasi selbst vorgeschlagen:
Im OnDoubleClick wird das Menü über die Methode PopUp geöffnet und vorher speichert man noch in einem anderen Ereignis die Mauskoordinaten (z.B. im OnMouseMove), damit klar ist, wo das popUp-Menü erscheinen soll.

MfG
Binärbaum

derpepe 17. Mär 2005 11:51

Re: PopUp-Menü mit Doppelklick öffnen
 
Hab das momentan so gemacht:

Delphi-Quellcode:
var
  Maus : TPoint;


procedure THauptfenster.SynEdit1DblClick(Sender: TObject);
begin
  PopupMenu1.Popup(Maus.X,Maus.Y);
end;

procedure THauptfenster.SynEdit1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Maus.X:=X;
  Maus.Y:=Y;
  Maus:=(Sender as TControl).ClientToScreen(Maus);
end;
Funktioniert auch, aber die Variable "Maus" mag ich eigentlich nicht so haben.
Mir wäre es lieber wenn ich das alles in einem Event hätte und nicht so verstreut :-(
Je größer das Projekt wird umso unübersichtlicher wird das.

Catbytes 17. Mär 2005 11:51

Re: PopUp-Menü mit Doppelklick öffnen
 
Hallo,

probier mal das:

Delphi-Quellcode:
procedure TForm1.FormDblClick(Sender: TObject);
begin
  PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
end;

derpepe 17. Mär 2005 11:53

Re: PopUp-Menü mit Doppelklick öffnen
 
Perfekt!

Vielen Dank ;-)


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