Es geht auch mit Delphi Bordmitteln:
Setz einen Button und ein Popup-Menue auf ein Formular. Und Dann:
Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
pt: TPoint;
begin
pt.x := SpeedButton1.BoundsRect.Left;
pt.y := SpeedButton1.BoundsRect.Bottom;
pt := ClientToScreen(pt);
PopupMenu1.Popup(pt.x, pt.y);
end;