Método Popup do SpeedButton em form Modal

01/11/2004

0

Olá! Tenho em uma determinada posição de um form um SpeedButton. Esse form está com ´BorderStyle´ igual a ´bsDialog´ e ele sempre é chamado com ´ShowModal´. Coloquei no form um PopupMenu e eu queria que quando o usuário pressionasse o botão o PopupMenu aparecesse embaixo dele. Já coloquei o menu na propriedade ´PopupMenu´ do SpeedButton, mas nada acontece. Coloquei o seguinte código que achei aqui no fórum:

...
var pt:TPoint;
begin
   GetCursorPos(pt);
   PopupMenu1.Popup(pt.X, pt.y);
end;


Até funciona, mas eu queria posicionar o Menu exatamente abaixo do botão não importando onde o usuário clique. Exatamente como os ´ToolButtons´ fazem quando estão com sua propriedade ´DropDownMenu´ preenchidas...

Se alguém souber como resolver isso... Até!


Delphi32

Delphi32

Responder

Posts

01/11/2004

Gilvanj

Tente utilizar isso:

PopupMenu1.Popup( SpeedButton1.ClientToScreen(Point(0,SpeedButton1.Height)) );


Responder

01/11/2004

Gilvanj

Ops...

Tente este aqui:

var
vPonto : TPoint;
begin
vPonto := SpeedButton1.ClientToScreen(Point(0, SpeedButton1.Height));
PopupMenu1.Popup(vPonto.X, vPonto.Y);


Responder

20/10/2021

Wellington Telles

Para qualquer objeto:

procedure TForm1.Image1Click(Sender: TObject);
var
  P : TPointF;
begin
  P.X := 0;
  P.Y := 50;
  P := Image1.LocalToAbsolute(P);
  P := ClientToScreen(P);
  PopupMenu1.Popup(P.X,P.Y);
end;
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar