Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Valdiney F. Lima

Muda a imagem quando o mouse estiver sobre a imagem

Recommended Posts

Oi pessoal...

 

Eu estou fazendo um menu com várias imagens.

Por exemplo:

 

Quando eu passar o mouse uma imagem, eu gostaria que ela mudasse para outra imagem...

 

Tentei assim, mas não tive o sucesso pretendido

procedure TfrmDados.Image1MouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin  Image1.Picture.LoadFromFile('imagens/matriz_on.bmp');end;

Preciso que volte para a imagem inical quando o mouse nao estiver sobre ela... Como eu faria isso?

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm... to sem o delphi aki, mas ñ tem nenhum evento de saida do mouse???ou então você pega a posição do mouse e compara se é a mesma posição da imagem ou diferente da área ocupada por ela, ai se for diferente você volta a imagem, senão você coloca a que você quer que apareça quando o mouse ta em cima da imagem...beleza?

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm... to sem o delphi aki, mas ñ tem nenhum evento de saida do mouse???ou então você pega a posição do mouse e compara se é a mesma posição da imagem ou diferente da área ocupada por ela, ai se for diferente você volta a imagem, senão você coloca a que você quer que apareça quando o mouse ta em cima da imagem...beleza?

Essa lógica eu até havia pensado... mas na prática... é f***. Eu programo em PHP e estou começando em Delphi...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça esse código mesmo, mas no evento OnMouseMove da imagem, pois quando o mouse se mover sobre a imagem vai ser alterada...

Deste jeito deu certo... mas quando o mouse tiver fora da imagem?

Como foltar a outra imagem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Faça esse código mesmo, mas no evento OnMouseMove da imagem, pois quando o mouse se mover sobre a imagem vai ser alterada...

Deste jeito deu certo... mas quando o mouse tiver fora da imagem?

Como foltar a outra imagem?

 

Eu usava exatamente o evento OnMouseOver... mas quando eu passava o mouse nao mudava, tinha que clicar na imagem, e depois quando o mouse nao estava mais em cima da imagem, ela nao voltava para a imagem default...

 

Como eu faria isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha eu falei uma bobagem muito grande.

 

Mas o objeto TImage, não tem o evento OnMouseOver, somentes os listados abaixo:

 

 

- OnMouseDown

- OnMouseMove

- OnMouseUp

 

Ta complicado o meu problema... Não consigo fazer essa paradinha de permurtar as imagens. Que droga.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte...Chame o evento Picture.LoadFromFile no evento OnMouseMove do Form para chamar a imagem padrão (isto é, quando o mouse não estiver em cima da Imagem). Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

feito no onmousemove de um timage

 

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin  if (((X>0) and (X<Image1.Width)) and ((y>0) and  (y<Image1.Height))) then	Image1.Picture.LoadFromFile(<arquivo1>)  else	Image1.Picture.LoadFromFile(<arquivo2>);end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

feito no onmousemove de um timage

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin  if (((X>0) and (X<Image1.Width)) and ((y>0) and  (y<Image1.Height))) then	Image1.Picture.LoadFromFile(<arquivo1>)  else	Image1.Picture.LoadFromFile(<arquivo2>);end;
Desta forma funcionou mais ou menos... Tem hora que permuta a imagem e hora nao..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque no OnMouseMove do TImage o Image1.Picture.LoadFromFile(<arquivo1>) e no OnMouseMove do seu Form em que está esse TImage o código Image1.Picture.LoadFromFile(<arquivo2>). O evento OnMouseMove do form não é chamado quando o mouse está em cima do TImage. Vai funcionar ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque no OnMouseMove do TImage o Image1.Picture.LoadFromFile(<arquivo1>) e no OnMouseMove do seu Form em que está esse TImage o código Image1.Picture.LoadFromFile(<arquivo2>). O evento OnMouseMove do form não é chamado quando o mouse está em cima do TImage. Vai funcionar ;)

Desta forma também não deu!Se você quizer eu mando o projeto pra você dar uma olha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

No OnMouseMove, do Panel7:

procedure TfrmDados.Panel7MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin	Image4.Picture.LoadFromFile('imagens/btn_InformacoesDeRegistro_off.bmp');end;
No OnMouseMove, do Image4:

procedure TfrmDados.Image4MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin  Image4.Picture.LoadFromFile('imagens/btn_InformacoesDeRegistro_on.bmp');end;

Só não sei o que fazer para parar de piscar a imagem quando mexer ou mouse (devido ao LoadFromFile)

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://psygames.byethost10.com/forum/arquivos/mousemove.zip

 

Kara, esse é apenas um exemplo que funciona se você não mexer o mouse muito depressa pous quanto mais rápido, mas pixels são saltados...

 

e eu usei a dica que tinha te passado com uma pequena adaptação...

Compartilhar este post


Link para o post
Compartilhar em outros sites

No OnMouseMove, do Panel7:

procedure TfrmDados.Panel7MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin	Image4.Picture.LoadFromFile('imagens/btn_InformacoesDeRegistro_off.bmp');end;
No OnMouseMove, do Image4:
procedure TfrmDados.Image4MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin  Image4.Picture.LoadFromFile('imagens/btn_InformacoesDeRegistro_on.bmp');end;
Só não sei o que fazer para parar de piscar a imagem quando mexer ou mouse (devido ao LoadFromFile)
Sem problema... agora vou fazer uma função pra organizar mais as imagens que colocarei no projeto. Valeu pela a atenção meu velho.Abração!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.