Capturar Mouse

Delphi

03/01/2005

Olá pessoal.
Tem como lançar um evento toda vez que o mouse for clicado, não importando onde ele foi clicado?
Agradeço antecipadamente.


Flaviosan

Flaviosan

Curtidas 0

Respostas

Max.jgs

Max.jgs

03/01/2005

Olá pessoal. Tem como lançar um evento toda vez que o mouse for clicado, não importando onde ele foi clicado? Agradeço antecipadamente.



Vá no evento OnClick e digite a linha de código.
Ex:

procedure TForm1.FormClick(Sender: TObject);
begin
ShowMessage(´Teste´);
end;


Ass: Max...


GOSTEI 0
Andremuller

Andremuller

03/01/2005

A dica aterior não funcionará para o click em qualquer local do form, apenas para o click no form. Para testar apenas coloque um panel no form e verá que a mensagem não aparecerá para os cliques no panel.
Para setar o clique de todos os componentes então tu podes utilizar um método como

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to ComponentCount - 1 do
  begin
    if Components[i] is TControl then
      if Components[i] is TButton then
        (Components[i] as TButton).OnClick := FormClick
      else
        if Components[i] is TPanel then
          (Components[i] as TPanel).OnClick := FormClick
        else
          raise Exception.Create(´Componente não tratado. ´ + Components[i].Name);
  end;
end;


sendo que ele vai ignorar qualquer outra referência para outros OnClick.
Eu dei uma olhada rápida e não achei tenhum typecast geral para os componentes visuais, se tu achar, melhor, não precisa escrever para cada classe como eu fiz (TPanel e TButton), porque na TControl o TNotifyEvent OnClick está como protected.

Se tua intenção é outra ou estás com dúvida, envie outra mensagem para o fórum.


GOSTEI 0
Flaviosan

Flaviosan

03/01/2005

Obrigado pessoal pela ajuda, mas eu achei um modo melhor de fazer isso. Usando o evento oncreate do form, eu criei uma procedure que monitora o eventos do mouse, atraves do evento Application.OnMessage, em qualquer lugar do form. Se alguem precisar de ajuda, é só pedir.
Obrigado pela ajuda.


GOSTEI 0
Dpinho

Dpinho

03/01/2005

Obrigado pessoal pela ajuda, mas eu achei um modo melhor de fazer isso. Usando o evento oncreate do form, eu criei uma procedure que monitora o eventos do mouse, atraves do evento Application.OnMessage, em qualquer lugar do form. Se alguem precisar de ajuda, é só pedir. Obrigado pela ajuda.


Amigo estou tentando fazer uma rotina onde reconheço que o mouse foi movido ou clicado, parecido com o descanso de tela quero que aparecça os componentes somente se utilizar o mouse e se ficar alguns minutos sem utilizar faz desaparecer os componentes...poderia ajudar


GOSTEI 0
POSTAR