Ir al contenido


Foto

Ocultar y mostrar ciertas imagenes


  • Por favor identifícate para responder
6 respuestas en este tema

#1 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 19 julio 2009 - 02:23

Hola
A ver si me podéis ayudar en te invento.
Lo que tengo:
Tengo una serie de imágenes, están van en números impares y pares.
Image1, 3, 5, 7.......
Image2. 4, 6, 8.......
La imágenes impares están siempre visibles.
Lo que quiero es que cuando pase el ratón por una imagen impar se haga visible su correspondiente imagen par.
1= 2, 3= 4, 5= 6 etc.
Y que según se vallan pasando las otras se vallan ocultando.
Espero que me entendáis.
Saludos


  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 19 julio 2009 - 02:28

Pues ¿qué componentes estás usando?.

Saludos.
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 19 julio 2009 - 02:44

En caso de que esté utillizando TImage, como esos no tienen un evento OnMouseOver, lo que se me ocurre es utilizar los eventos OnMouseDown y OnMouseUp:
 

delphi
  1. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4. if button = mbLeft then
  5.   begin
  6.     Image1.Picture.LoadFromFile('C:\2.bmp');
  7.   end else begin
  8.     Image1.Picture.LoadFromFile('C:\1.bmp');
  9.   end;
  10. end;
  11.  
  12. procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  13.   Shift: TShiftState; X, Y: Integer);
  14. begin
  15. Image1.Picture.LoadFromFile('C:\1.bmp');
  16. end;

Pero dejemos que vengan los maestros :D.

Saludos.
  • 0

#4 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 19 julio 2009 - 06:56

Las condiciones para que funcione son: Que los TImage llamen TImage1, TImage3, TImage5...etc ;  que los archivos estén en la carpeta del ejecutable y que se llamen 1.jpg, 2.jpg, 3.jpg.... etc, solo basta compartir para todos los TImage los eventos  OnMouseEnter y OnMouseLeave.


delphi
  1.   function ExtraerNumero(const Numero : String) : String;
  2. var
  3. I:integer;
  4. TempNum : String;
  5. begin
  6. Result := Numero;
  7. for i := 1 to Length(Numero) do
  8.   if not (Numero[I]in['0'..'9']) then //Versiones anteriores a Delphi 2009
  9.   //if not (CharInSet(Numero[i],['0'..'9'])) then// para Delphi 2009
  10.   begin
  11.       TempNum := Result;
  12.       while Pos(Numero[I], TempNum) > 0 do
  13.       Delete(TempNum, Pos(Numero[I], TempNum), 1);
  14.       Result:= TempNum;
  15. end;
  16. end;
  17.  
  18. procedure TForm1.ImageMouseEnter(Sender: TObject);
  19. var
  20. NumeroImagen :Integer;
  21. begin
  22. NumeroImagen:= StrToInt(ExtraerNumero(TImage(Sender).Name))+1;
  23. TImage(Sender).Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\'+
  24. IntToStr(NumeroImagen)+'.jpg');
  25. end;
  26.  
  27. procedure TForm1.ImageMouseLeave(Sender: TObject);
  28. var
  29. NumeroImagen :Integer;
  30. begin
  31. NumeroImagen:= StrToInt(ExtraerNumero(TImage(Sender).Name));
  32. TImage(Sender).Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\'+
  33. IntToStr(NumeroImagen)+'.jpg');
  34. end;

Espero te sirva.
Saludos
  • 0

#5 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 19 julio 2009 - 07:00

Hola
Muchas gracias amigos
Lo resolví­ con un sistema mas a lo novato pero funciona.
Lo que estaba haciendo era una agenda de teléfonos, algo para pasar el rato y no olvidarme.
Voy a dejar el programita en el foro Access (AQUI) ya que trabaja con este.
Gracias por vuestras ideas.
Saludos


  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 19 julio 2009 - 07:37

Vale Wilson, se ve interesante, pero sacame de las dudas, ¿qué delphi usas?, en D7 el TImage no tiene los eventos OnMouseEnter y OnMouseLeave al igual que OnMouseOver.

Saludos.
  • 0

#7 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 19 julio 2009 - 09:07

Delphi 2009 amigo.

Saludos
  • 0




IP.Board spam blocked by CleanTalk.