Fórum Criar componente Image com evento OnMousenter e OnMouseLeave #371395

18/06/2009

0

Olá, gente.
Preciso implementar os eventos OnMouseEnter e OnMouseLeave em um componente TImage.
Alguém pode me ajuar?
Valeu.


Waldinho

Waldinho

Responder

Posts

19/06/2009

.lg.

Para o [b:3cb88beb0c]OnMouseEnter[/b:3cb88beb0c] é simples, pois o evento [b:3cb88beb0c]OnMouseMove[/b:3cb88beb0c] so executa quando o mouse passa por cima dele. ou seja:

Crie uma procedure chamado [color=darkblue:3cb88beb0c]imgMouseEnter[/color:3cb88beb0c] (Ou com qualquer outro nome, sei la), e crie uma booleana. Jogue a procedure para a primeira coisa a se fazer no [b:3cb88beb0c]OnMouseMove[/b:3cb88beb0c]. Mas aí você vai falar: ´Aaah mas toda hora vai executar, não é isso que quero. vai move o mouse por dentro e vai executar a procedure em cada pixel que eu mover o mouse.´.
A solução:
Lembra da variável booleana!? A lógica!?
-> Enquanto for False, o mouse estará fora da imagem, e o evento so entra se for false. ao entrar vc muda pra true. assim o evento so executa 1x. No OnMouseEnter do formulário, vc define a booleana pra False. assim quando sair da imagem... O seu evento OnMouseEnter da imagem estará pronto pra ser executada novamente.

Agora não me pergunte como fazer o [color=red:3cb88beb0c]mouseLeave[/color:3cb88beb0c], porque eu não tenho ideia, até pensei que no [b:3cb88beb0c]OnMouseEnter[/b:3cb88beb0c] do formulário poderia ativar o evento da saída da imagem, mas pensei em um monte de problemas. Dexa queto.

Espero que ajude.
.lg.


Responder

Gostei + 0

21/06/2009

Discorpio

Boa noite a todos.

Se bem entendi de acordo com o título do post, voce quer carregar uma determinda imagem quando o mouse passar por cima do TImage e carregar outra quando o mouse sair dele.

É isto mesmo :?:

Bom, se for, então é simples, assim:


procedure TForm1.Image1MouseEnter(Sender: TObject);
begin
  Image1.Picture.LoadFromFile(´C:\Minhas Imagens\Arquivo1.jpg´);
end;

procedure TForm1.Image1MouseLeave(Sender: TObject);
begin
  Image1.Picture.LoadFromFile(´C:\Minhas Imagens\Arquivo2.jpg´);
end;



Valendo lembrar que para que o TImage reconheça imagens no arquivo JPEG, voce tem que declara a Unit Jpeg na seção Uses do Form

  unit Unit1;

  interface

  uses
      Windows,.........., Jpeg; // Aqui por último a Unit Jpeg.




Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar