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 Problem mit Edit-Feld auf Panel und Popupmenu (https://www.delphipraxis.net/122928-problem-mit-edit-feld-auf-panel-und-popupmenu.html)

bra_parametrix 24. Okt 2008 12:14


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

Klaus01 24. Okt 2008 12:33

Re: Problem mit Edit-Feld auf Panel und Popupmenu
 
Hallo,

ist es möglich, dass Du das PopupMenu manuell aufrufst.
Vielleicht so?

Delphi-Quellcode:
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 if Button = mbright then
   PopUpMenu1.Popup(x,y);
end;
Grüße
Klaus

taaktaak 24. Okt 2008 13:41

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:
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;
Damit wird der gewünschte Effekt erzielt.

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

bra_parametrix 27. Okt 2008 12:15

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:
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;
Viele Grüsse

Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz