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

Cargar Imagenes y hacer que cambien
Comenzado por
edorantes
, feb 28 2013 01:11
9 respuestas en este tema
#1
Escrito 28 febrero 2013 - 01:11
#2
Escrito 28 febrero 2013 - 03:05
Investiga los componentes TImage y TTimer.
Saludos.
Saludos.
#3
Escrito 01 marzo 2013 - 09:14
En la seccion juegos y animaciones del foro puedes encontrar como hacerlo.
#4
Escrito 04 marzo 2013 - 11:23
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
Bueno les sigo explicando una vez guardadas las direcciones las boy a ir cambiando con un ttimer y mostrarlas en un Timage
este es mi codigo
delphi
Dialogo.Execute; TS := TStringList.Create(); try TS.Add(Dialogo.FileName); TS.SaveToFile('d:/txto.txt'); finally FreeAndNil(TS); end;
Bueno les sigo explicando una vez guardadas las direcciones las boy a ir cambiando con un ttimer y mostrarlas en un Timage
#5
Escrito 04 marzo 2013 - 03:23
delphi
ofAllowMultiSelect:= true;
Saludos.
#6
Escrito 04 marzo 2013 - 03:59
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
image1.Picture.LoadFromFile(imagen); Timer1.Enabled := false; Timer2.Enabled := true;
#7
Escrito 05 marzo 2013 - 10:11
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
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
en un txt guardo las direcciones de las imagenes y despues obtengo esas direcciones con un Tstring asi
delphi
dir := TStringList.create; 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
procedure TForm1.Timer1Timer(Sender: TObject); begin lin := dir.Count; x := 0; while (x<lin) do begin image1.Picture.LoadFromFile(dir.Strings[x]); x:= x+1 ; end; end;
#8
Escrito 05 marzo 2013 - 10:40
No tienes que hacer ningún bucle dentro del OnTimer, simplemente cada vez que se dispare en OnTimer tienes que cargar una imagen nueva
#9
Escrito 05 marzo 2013 - 10:55
El siguiente ejemplo trabaja perfectamente, no olvides en tiempo de diseño, poner en false la propiedad enabled del timer.
delphi
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg; type TForm1 = class(TForm) Button1: TButton; Image1: TImage; Timer1: TTimer; Button2: TButton; procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private FIndiceImagen: integer; FLista: TStringList; procedure IniciarImagenes; procedure DetenerImagenes; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin IniciarImagenes end; procedure TForm1.Button2Click(Sender: TObject); begin DetenerImagenes end; procedure TForm1.DetenerImagenes; begin Timer1.Enabled := False; if assigned(FLista) then FreeAndNil(FLista); end; procedure TForm1.IniciarImagenes; begin if not assigned(FLista) then FLista := TStringList.Create; FLista.LoadFromFile('f:\imas\imas.txt'); if not Timer1.Enabled then Timer1.Enabled := True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin if assigned(FLista) then begin if FIndiceImagen = FLista.Count - 1 then FIndiceImagen := 0; Image1.Picture.LoadFromFile(FLista[FIndiceImagen]); FIndiceImagen := FIndiceImagen + 1; end; end; end.
#10
Escrito 07 marzo 2013 - 03:59
Muchas gracias willson y a todos los que se tomaron el tiempo de resolverlo
Bendiciones
Bendiciones