Método Popup do SpeedButton em form Modal
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:
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é!
... 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
Curtidas 0
Respostas
Gilvanj
01/11/2004
Tente utilizar isso:
PopupMenu1.Popup( SpeedButton1.ClientToScreen(Point(0,SpeedButton1.Height)) );
PopupMenu1.Popup( SpeedButton1.ClientToScreen(Point(0,SpeedButton1.Height)) );
GOSTEI 0
Gilvanj
01/11/2004
Ops...
Tente este aqui:
var
vPonto : TPoint;
begin
vPonto := SpeedButton1.ClientToScreen(Point(0, SpeedButton1.Height));
PopupMenu1.Popup(vPonto.X, vPonto.Y);
Tente este aqui:
var
vPonto : TPoint;
begin
vPonto := SpeedButton1.ClientToScreen(Point(0, SpeedButton1.Height));
PopupMenu1.Popup(vPonto.X, vPonto.Y);
GOSTEI 0
Wellington Telles
01/11/2004
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;
GOSTEI 0