Abrindo PopupMenu em posições diferentes em tempo de execução

Delphi

11/02/2015

Tenho um pequeno problema em relação ao PopupMenu, pois coloquei uma posição fixa para ele :

procedure TfPrincipal.Image5Click(Sender: TObject);
begin
PopupMenu1.Popup(555,149)
end;

Tenho varios botões em meu form principal, todos alinhados a esquerda; Tenho uma opção que deixa invisivel os botões, então a imagem onde faz o PopupMenu aparecer muda de lugar conforme habilito ou sesabilito alguns botões, sendo assim se eu colocar uma posição fixa para meu PopupMenu, ele não vai acompanhar minha imagem, teria como colocar na posição do PopupMenu algum comando para que ele acompanhe a 'imagem5' ?
Jhon

Jhon

Curtidas 0

Respostas

Cauê Nishijima

Cauê Nishijima

11/02/2015

Mostrar o popup de acordo com a posição do mouse não serve pra você?

Da seguinte forma:

procedure TfPrincipal.Image5Click(Sender: TObject);
begin
   PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
end;
GOSTEI 0
Renato Rubinho

Renato Rubinho

11/02/2015

Buenas,

Pega a posição absoluta do objeto na tela.

procedure TfPrincipal.Image5Click(Sender: TObject);
var
  lPoint: TPoint;
begin
  lPoint := Image5.ClientToScreen(Point(0,0));  
  PopupMenu1.Popup(lPoint.X, lPoint.Y);
end;
GOSTEI 0
Jhon

Jhon

11/02/2015

Obrigado, deu certo.
GOSTEI 0
POSTAR