Capturar o componente sob o mouse...
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
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
Curtidas 0
Respostas
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
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.
Mas obrigado pela ajuda.
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
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