Jump to content


Photo

Cargar Imagenes y hacer que cambien


  • Please log in to reply
9 replies to this topic

#1 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 posts

Posted 28 February 2013 - 01:11 PM

Hola de nuevo a todos como saben soy nuevo en Delphi bueno vamos al grano, me han encargado hacer una aplicacion en el cual cargue 6 imagenes a mi aplicacion y una ves cargadas que cambien en cierto tiempo, se que debo usar el Ttimer pero sobre como cargarlas no se que elementos o controles  debo ocupar espero sus respuestas 
  • 0

#2 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4111 posts
  • LocationMadrid - España

Posted 28 February 2013 - 03:05 PM

Investiga los componentes TImage y TTimer.

Saludos.
  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4483 posts
  • LocationVenezuela

Posted 01 March 2013 - 09:14 AM

En la seccion juegos y animaciones del foro puedes encontrar como hacerlo.
  • 0

#4 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 posts

Posted 04 March 2013 - 11:23 AM

Bueno amigos tengo la idea pero me faltan complementar varias cosas miren quiero  seleccionar varias imagenes y despues pasarlas a un Tstrings para guardar las direcciones en un .txt bueno eso ya lo implemente pero lo que no puedo hacer es que con un OpenPicture dialog seleccione varias imagenes, solo me deja seleccionar una, como hago para que seleccione varias imagenes
este es mi codigo


delphi
  1. Dialogo.Execute;
  2.  
  3.   TS := TStringList.Create();
  4.  
  5.   try
  6.  
  7.     TS.Add(Dialogo.FileName);
  8.  
  9.  
  10.  
  11.     TS.SaveToFile('d:/txto.txt');
  12.  
  13.   finally
  14.     FreeAndNil(TS);
  15.   end;


Bueno les sigo explicando una vez guardadas las direcciones las boy a ir cambiando con un ttimer y mostrarlas en un Timage

  • 0

#5 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4111 posts
  • LocationMadrid - España

Posted 04 March 2013 - 03:23 PM



delphi
  1. ofAllowMultiSelect:= true;



Saludos.


  • 0

#6 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 posts

Posted 04 March 2013 - 03:59 PM

Perfecto escafandra ahora el txt lo muestro en un listbox mi cuestion es como utilizo el Ttimer para que vaya selecciondo la direccion del listbox y vaya cambiandola cada 10 segundos lo que yo hice fue poner dos timer y se van activando mutuamente pero necesito usar solo un Ttimer les pongo mi codigo


delphi
  1. image1.Picture.LoadFromFile(imagen);
  2. Timer1.Enabled := false;
  3. Timer2.Enabled := true;


  • 0

#7 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 posts

Posted 05 March 2013 - 10:11 AM

Bueno lo he tratado de hacer con un ciclo while pero no me cambia las imagenes miren les explico
en un txt guardo las direcciones de las imagenes y despues obtengo esas direcciones con un Tstring asi

delphi
  1. dir := TStringList.create;
  2. dir.LoadFromFile('direcciones.txt');


despues en el Ttimer en el evento onTimer
ago un ciclo while en donde cuento las lineas del txt y una variable que vaya incrementandose para seleccionar la direccion y mostrar la imagen pero SOLO MUESTRA UNA IMAGEN


delphi
  1. procedure TForm1.Timer1Timer(Sender: TObject);
  2. begin
  3. lin := dir.Count;
  4. x := 0;
  5. while (x<lin) do
  6.  
  7. begin
  8.  
  9. image1.Picture.LoadFromFile(dir.Strings[x]);
  10.  
  11. x:= x+1 ;
  12.  
  13. end;
  14.  
  15.  
  16.  
  17. end;


  • 0

#8 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 posts
  • LocationEspaña

Posted 05 March 2013 - 10:40 AM

No tienes que hacer ningún bucle dentro del OnTimer, simplemente cada vez que se dispare en OnTimer tienes que cargar una imagen nueva
  • 0

#9 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2137 posts

Posted 05 March 2013 - 10:55 AM

El siguiente ejemplo trabaja perfectamente, no olvides en tiempo de diseño, poner en false la propiedad enabled del timer.



delphi
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, ExtCtrls, StdCtrls, jpeg;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Button1: TButton;
  12.     Image1: TImage;
  13.     Timer1: TTimer;
  14.     Button2: TButton;
  15.     procedure Timer1Timer(Sender: TObject);
  16.     procedure Button1Click(Sender: TObject);
  17.     procedure Button2Click(Sender: TObject);
  18.   private
  19.     FIndiceImagen: integer;
  20.     FLista: TStringList;
  21.     procedure IniciarImagenes;
  22.     procedure DetenerImagenes;
  23.     { Private declarations }
  24.   public
  25.     { Public declarations }
  26.   end;
  27.  
  28. var
  29.   Form1: TForm1;
  30.  
  31. implementation
  32.  
  33. {$R *.dfm}
  34.  
  35. procedure TForm1.Button1Click(Sender: TObject);
  36. begin
  37.   IniciarImagenes
  38. end;
  39.  
  40. procedure TForm1.Button2Click(Sender: TObject);
  41. begin
  42.   DetenerImagenes
  43. end;
  44.  
  45. procedure TForm1.DetenerImagenes;
  46. begin
  47.   Timer1.Enabled := False;
  48.   if assigned(FLista) then
  49.     FreeAndNil(FLista);
  50. end;
  51.  
  52. procedure TForm1.IniciarImagenes;
  53. begin
  54.   if not assigned(FLista) then
  55.     FLista := TStringList.Create;
  56.   FLista.LoadFromFile('f:\imas\imas.txt');
  57.   if not Timer1.Enabled then
  58.     Timer1.Enabled := True;
  59. end;
  60.  
  61. procedure TForm1.Timer1Timer(Sender: TObject);
  62. begin
  63.   if assigned(FLista) then
  64.   begin
  65.     if FIndiceImagen = FLista.Count - 1 then
  66.       FIndiceImagen := 0;
  67.     Image1.Picture.LoadFromFile(FLista[FIndiceImagen]);
  68.     FIndiceImagen := FIndiceImagen + 1;
  69.   end;
  70. end;
  71.  
  72. end.


  • 0

#10 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 posts

Posted 07 March 2013 - 03:59 PM

Muchas gracias willson y a todos los que se tomaron el tiempo de resolverlo
Bendiciones
  • 0




IP.Board spam blocked by CleanTalk.