![]() |
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 :-) |
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 |
Re: PopUp-Menü mit Doppelklick öffnen
Hab das momentan so gemacht:
Delphi-Quellcode:
Funktioniert auch, aber die Variable "Maus" mag ich eigentlich nicht so haben.
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; 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. |
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; |
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