um Sprint's Vorschlag nochmal zu konkretisieren:
Delphi-Quellcode:
function MenuItemPopup(ParentHWnd : THandle; AMenuItem : TMenuItem; X,Y : Integer) : Boolean;
var
Flags : Integer;
begin
Flags := TPM_LEFTALIGN or TPM_LEFTBUTTON;
Result := TrackPopupMenu(AMenuItem.Handle, Flags, x, y, 0, ParentHWnd, nil);
end;
Viel Spass beim ermitteln der korrekten X/Y Position... hab in einem Test Form.Top/Left genommen (+Offset). Müsste man auch genau berechnen können, aber denke Try&Error geht da schneller.
AMenuItem muss ein TMEnuItem sein, das ein Untermenü hält...