Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Buttonmenü á la Rechtsklick (https://www.delphipraxis.net/8730-buttonmenue-%E1-la-rechtsklick.html)

1PM 10. Sep 2003 23:38


Buttonmenü á la Rechtsklick
 
Hallo zusammen!

Gibt es eine Möglichkeit ein Untermenü für Buttons zu machen, wie wenn man Rechts z.B. auf eine Datei klickt?

Vielen Dank im voraus!

Gruß
1PM

Christian Seehase 10. Sep 2003 23:40

Re: Buttonmenü á la Rechtsklick
 
Moin 1PM,

ja gibt's (falls ich Dich richtig verstanden habe).
Das ganze nennt sich PopUpMenu, und kann einem Button als Eigenschaft zugeordnet werden (siehe OI).

1PM 10. Sep 2003 23:51

Re: Buttonmenü á la Rechtsklick
 
Vielen Dank Chris! :hello:

1PM 11. Sep 2003 00:06

Re: Buttonmenü á la Rechtsklick
 
Jetzt gibt es nur noch ein Problem:

Wie öffnet sich es am Button?

Ich habe mich dem Beispiel aus der Hilfe bedient:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  PopupMenu1.AutoPopup := False;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin
  PopupMenu1.Popup(X, Y);
end;
Allerdings öffnet er es oben, kurz unter der Titelleiste.
Das Formular, auf dem das PopupMenu geöffnet wird ist MDIChild.

Vielen Dank im voraus!

Gruß
1PM

Wormid 11. Sep 2003 00:25

Re: Buttonmenü á la Rechtsklick
 
Hast Du das Menü dem Formular oder dem Button zugeordnet?
(Die Eigenschaft lässt sich über den OI editieren!)


Gruß

Wormid

Marco Haffner 11. Sep 2003 00:43

Re: Buttonmenü á la Rechtsklick
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  PopupMenu1.AutoPopup := False;
  Button1.PopupMenu := PopupMenu1;
  Button1.OnClick := Button1Click;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  P: TPoint;
begin
  if (Sender is TButton) then
  with TButton(Sender) do
  begin
    P.X := Left;
    P.Y := Top + Height;
    P := Self.ClientToScreen(P);
    PopupMenu.Popup(P.X, P.Y);
  end;
end;

Christian Seehase 11. Sep 2003 02:03

Re: Buttonmenü á la Rechtsklick
 
Moin 1PM,

probier's mal so:

Delphi-Quellcode:
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button <> mbRight then exit;
  PopupMenu1.Popup(Mouse.CursorPos.x,Mouse.CursorPos.y);
end;


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