Ir al contenido


Foto

cambiar entre imágenes diferentes automáticamente


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

#1 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 259 mensajes

Escrito 05 mayo 2011 - 07:37

buenas tardes amigos aqui nuevamente con una consulta
saben, tengo tres imagenes png y quisiera saber que procedimiento tendría
que realizar para que estas aparezcan en el form y cambien automaticamente
una a la otra en forma infinita.

Lo mucho que pude hacer es que cambien una a la otra con tres botones
algo así:




delphi
  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  9.   ExtCtrls;
  10.  
  11. type
  12.  
  13.   { TForm1 }
  14.  
  15.   TForm1 = class(TForm)
  16.     Button1: TButton;
  17.     Button2: TButton;
  18.     Button3: TButton;
  19.     Image1: TImage;
  20.     Image2: TImage;
  21.     Image3: TImage;
  22.     Timer1: TTimer;
  23.     procedure Button1Click(Sender: TObject);
  24.     procedure Button2Click(Sender: TObject);
  25.     procedure Button3Click(Sender: TObject);
  26.     procedure Timer1Timer(Sender: TObject);
  27.   private
  28.     { private declarations }
  29.   public
  30.     { public declarations }
  31.   end;
  32.  
  33. var
  34.   Form1: TForm1;
  35.  
  36. implementation
  37.  
  38. {$R *.lfm}
  39.  
  40. { TForm1 }
  41.  
  42. procedure TForm1.Button1Click(Sender: TObject);
  43. begin
  44.   image1.Picture.LoadFromFile('frame4.png');
  45. end;
  46.  
  47. procedure TForm1.Button2Click(Sender: TObject);
  48. begin
  49.   image1.Picture.LoadFromFile('frame5.png');
  50. end;
  51.  
  52. procedure TForm1.Button3Click(Sender: TObject);
  53. begin
  54.   image1.Picture.LoadFromFile('frame6.png');
  55. end;
  56.  
  57. procedure TForm1.Timer1Timer(Sender: TObject);
  58. begin
  59.   //image3.picture.LoadFromFile('frame4.png');
  60.   //begin
  61.     //image3.Picture.LoadFromFile('frame5.png');
  62.  
  63.   //end;
  64. end;
  65.  
  66. end.





si se dan cuenta el cambio infinito quize hacerlo con un Ttimer pero no se como...


les pido una mano......gracias
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 05 mayo 2011 - 08:09

Hola

Yo lo haría así:



delphi
  1. var
  2.   indice: integer;
  3.   archivo: string;
  4.  
  5. procedure TForm1.Timer1Timer(Sender: TObject);
  6. begin
  7.   if (indice < 1) or
  8.     (indice > 4) then
  9.     indice := 1;
  10.   archivo := 'IMG0000'+inttostr(indice)+'.JPG';
  11.   image1.Picture.LoadFromFile(archivo);
  12.   indice := indice + 1;
  13. end;



Asumiendo que tienes 4 imagenes y que tienen una numeración consecutiva. :)

Salud OS
  • 0

#3 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 06 mayo 2011 - 07:08

Con el siguiente ejemplo solo basta inicializar los tags de los tres TImages a 1, 2, y 3 respectivamente.



delphi
  1. procedure TForm1.Timer1Timer(Sender: TObject);
  2. const
  3.   archivos: array [1 .. 3] of string = ('frame4.png', 'frame5.png',
  4.     'frame6.png');
  5. var
  6.   images: array [1 .. 3] of TImage;
  7.   k: integer;
  8. begin
  9.   images[1] := Image1;
  10.   images[2] := Image2;
  11.   images[3] := Image3;
  12.   for k := low(images) to high(images) do
  13.   begin
  14.     images[k].Picture.LoadFromFile(archivos[images[k].Tag]);
  15.     case images[k].Tag of
  16.       1:
  17.         images[k].Tag := 2;
  18.       2:
  19.         images[k].Tag := 3;
  20.       3:
  21.         images[k].Tag := 1
  22.     end;
  23.   end;
  24. end;



PD : También es recomendable asignar en tiempo de diseño una imagen a cada TImage para que no saque un error de extención de archivo.
  • 0

#4 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 259 mensajes

Escrito 08 mayo 2011 - 03:13

Gracias Amigos...... los probaré y luego les comento....... (y)
  • 0




IP.Board spam blocked by CleanTalk.