Capturar o componente sob o mouse...

Delphi

04/04/2005

Olá!

Estou tentando fazer um ´Hint´ um pouco diferente. Inseri um Memo no form e gostaria que o texto do hint dos outros compoentes aparecessem neste Memo sempre que fosse passado o mouse sobre os componentes do form. Até aí sem problemas, pois é só usar a rotina OnMouseMove de cada componente. Porém, como são muitos componentes, gostaria de criar uma função que de alguma maneira passasse o hint de um componente qualquer para o Memo, porém de uma forma menos ´braçal´.

Minha dúvida é:
Num form onde existem vários componentes, gostaria de saber se tem como capturar o componente que está sob a posição do cursor do mouse.

Sabendo isso, imagino fazer uma função com uma simples linha (ou poucas linhas mais), tipo Memo.Text := ComponenteXXX.Hint, e pronto.

Alguém sabe como posso criar algo assim?

Valeu!
wbb


Wbb

Wbb

Curtidas 0

Respostas

Massuda

Massuda

04/04/2005

Acho que a função [b:a9652b28e4]TForm.ControlAtPos[/b:a9652b28e4] resolve seu problema, mas ela só irá funcionar com controles que são derivados de TWinControl.


GOSTEI 0
Wbb

Wbb

04/04/2005

Obrigado Massuda!
Porém, por indicação de um outro colega em outro site, vou utilizar a seguinte maneira:

Inserindo um componente ApplicationEvents e utilizando seu evento OnHint, basta inserir o código abaixo.
procedure Tform1.ApplicationEvents1Hint(Sender: TObject);
begin
   with mmHints.Lines do
   begin
      Clear;
      Add(Application.Hint);
   end;
end;

Mas obrigado pela ajuda.


GOSTEI 0
Massuda

Massuda

04/04/2005

Porém, por indicação de um outro colega em outro site, vou utilizar a seguinte maneira...
Tudo bem... Não tinha pensado nisso... bem mais simples, já que o próprio Delphi cuida de manter atualizado qual hint você precisa mostrar.


GOSTEI 0
POSTAR