![]() |
Problem mit Edit-Feld auf Panel und Popupmenu
Hallo,
Ich habe ein Form mit einem Panel. Auf diesem Panel ist ein Edit-Feld. Ich habe auch auf dem Form ein Edit-Feld. Jetzt weise ich dem Panel ein Popupmenu zu. Starte ich nun das Programm und rechtsklicke ich auf das Edit-Feld im Form kommt das Windows-Standard-Popup (Ausschneiden, Kopieren, Löschen...). Rechtsklicke ich auf das Edit-Feld auf dem Panel, kommt das Popup-Menu das Panels. Kann ich etwas machen, damit auf diesem Edit-Feld auch das Windows-Standard-Popup kommt? Hat jemand eine Idee? Vielen Dank und Grüsse Stefan |
Re: Problem mit Edit-Feld auf Panel und Popupmenu
Hallo,
ist es möglich, dass Du das PopupMenu manuell aufrufst. Vielleicht so?
Delphi-Quellcode:
Grüße
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if Button = mbright then PopUpMenu1.Popup(x,y); end; Klaus |
Re: Problem mit Edit-Feld auf Panel und Popupmenu
Moin, Moin.
Ein für mich unerwartetes Verhalten! Seltsam! Den Vorschlag von Klaus kann ich aber nicht so ganz nachvollziehen - er führt bei mir nicht zum Erfolg. Habe mal ein bißchen gebastelt und die Events OnMouseDown() und OnMouseUp() des auf dem Panel placierten Edits so belegt:
Delphi-Quellcode:
Damit wird der gewünschte Effekt erzielt.
procedure TfoTest10.PanelEditMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin Panel1.PopupMenu:=nil end; procedure TfoTest10.PanelEditMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Panel1.PopupMenu:=PopupMenu1 end; // edit: Eigentlich doch nicht so unerwartet. Wie im OI schön zu sehen, gibt es ja eine Reihe von Eigenschaften, die Childs vom Parent übernehmen, wenn nichts anderes angegeben wird. Dumm nur, dass dieses Verhalten für das Popup offenbar nicht zu deaktivieren ist, wie es z.B. für den ParentFont möglich ist. |
Re: Problem mit Edit-Feld auf Panel und Popupmenu
Hallo
Vielen Dank für die Hilfe. Ich habe noch einen kleinen Verbesserungsvorschlag, damit das Popup-Menu auch an der Mausposition kommt:
Delphi-Quellcode:
Viele Grüsse
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var p: TPoint; begin if Button = mbright then begin p := Mouse.CursorPos; PopUpMenu1.Popup(p.x,p.y); end; end; Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 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