Abrindo PopupMenu em posições diferentes em tempo de execução
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' ?
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
Curtidas 0
Respostas
Cauê Nishijima
11/02/2015
Mostrar o popup de acordo com a posição do mouse não serve pra você?
Da seguinte forma:
Da seguinte forma:
procedure TfPrincipal.Image5Click(Sender: TObject); begin PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y); end;
GOSTEI 0
Renato Rubinho
11/02/2015
Buenas,
Pega a posição absoluta do objeto na tela.
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
11/02/2015
Obrigado, deu certo.
GOSTEI 0