Bueno, pues ya está

:
Código Delphi
[-]
procedure TwPrincipal.btPruebaClick(Sender: TObject);
var
Punto:TPoint;
begin
if btPrueba.Down then
begin
GetCursorPos(Punto);
pmPrueba.Popup(Punto.X,Punto.Y);
Application.ProcessMessages; btPrueba.Down := False; end;
end;
procedure TwPrincipal.ItemA1Click(Sender: TObject);
begin
ShowMessage('Item: ' + TComponent(Sender).Name);
end;
¿Porqué todo esto?
Tenía, como Román, un SpeedButton que me despliega un Popup y lo que quería: si no se seleccionaba nada en el menú, levantar el botón. Y si se seleccionaba algo que saliera un formulario pero que se viera que el botón seguía abajo...
Al principio, sin el ProcessMessages, puse un btPrueba.Down := False antes del ShowMessage del click del menu, pero eso causaba que se viera al botón levantarse y volverse a presionar... y no me gustaba.
Pues esa es la historia... espero que no haya aburrido a nadie

Saludos,