folgende Funktion öffnet das
Popup Menu eines bestimmten Controls.
Delphi-Quellcode:
function ShowPopupMenu(control: TControl):Longint;
begin
control.Perform(WM_CONTEXTMENU, 0, Integer(PointToSmallPoint(control.ClientToScreen(Point(2, 2)))));
end;
Beispiel:
Ein Button zeigt beim Klick auf linke Maustaste sein Kontextmenu an
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowPopupMenu(Button1);
end;
Der Unterschied zum Einfachen verwenden von bereits vorhandenen Methoden ist:
Das
Popup Menu wird geöffnet, ohne dass man das
Popup Menu direkt kennen müsste. Könnte auch sein, dass der Button kein
Popup Menu besitzt, aber dafür das übergeordnete Control. In diesem Fall öffnet sich das
Popup Menu des Parent Controls. Durch das Versenden vom WM_CONTEXTMENU wird die Arbeit, das passende Popup-Menu zu öffnen, der
VCL übertragen.
[edit=Chakotay1308]Hinweis zum Unterschied angefügt. Mfg, Chakotay1308[/edit]