Código Delphi
[-]
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
Pt: TPoint;
begin
Pt := Form1.ClientToScreen(Point(SpeedButton1.Left, SpeedButton1.Top + SpeedButton1.Height));
PopupMenu1.Popup(Pt.X, Pt.Y);
end;
Si el SpeedButton está dentro de algún contenedor, como un panel por ejemplo, entonces tendráss que sustituir Form1 por dicho contenedor.
// Saludos