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.
Preciso implementar os eventos OnMouseEnter e OnMouseLeave em um componente TImage.
Alguém pode me ajuar?
Valeu.
Waldinho
Curtir tópico
+ 0
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.
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:
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
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
Clique aqui para fazer login e interagir na Comunidade :)