Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Movimiento controlado de un TImage (https://www.clubdelphi.com/foros/showthread.php?t=40851)

raul_toled 28-02-2007 17:18:17

Movimiento controlado de un TImage
 
Hola, estoy realizando un juego donde introduzco una secuencia de movimientos y posteriormete eso lo realice un Timage. La secuencia la voy almacenando en un memo y despues las llevo a cabo una a una lellendo cada una de las lineas del Memo. El Movimiento lo estoy intentando controlar con un Timer, pero lo que pasa es que como son secuencias seguidas comienza con la siguiente antes de terminar la que esta haciendo por lo que siempre acaba haciendo solo la ultima.

Con un for voy leyendo la secuencia y dentro del for llamo al procedimiento que se encarga de activar el Timer y hacer el movimiento.

Como puedo controlarlo de alguna forma mejor, como lo estoy haciendo no consiguo lo que quiero.

Gracias

Neftali [Germán.Estévez] 28-02-2007 17:23:18

Tal vez deberías poner un poco de código para ilustrar la explicación, de otra forma es difícil saber cual es el error que estás cometiendo y darte una solución.
También te recomiendo que leas la Guía de estilo de los foros.

Bienvenido.

delphi.com.ar 28-02-2007 18:00:18

Cita:

Empezado por raul_toled
Con un for voy leyendo la secuencia y dentro del for llamo al procedimiento que se encarga de activar el Timer y hacer el movimiento.

Es que si tienes la concepción de que un timer es el que hace la animación, tendrías que esperar que termine la animación para indicarle la otra acción.
¿Porque no prescindes del timer?

raul_toled 04-03-2007 12:11:25

No se prescindir del Timer
 
Cita:

Es que si tienes la concepción de que un timer es el que hace la animación, tendrías que esperar que termine la animación para indicarle la otra acción.
¿Porque no prescindes del timer?
Ha sido la única forma de hacer desplazarse el TImage viendo la secuencia, de otra forma el movimiento lo hace tan rápido que no se ve.

Si hay alguna forma de prescindir del timer y hacerlo consiguiendo que dueda controlar la velocidad del movimiento estaría encantado de probarlo.

Seguiré intentandolo de todas formas.

Delphius 04-03-2007 19:35:18

raul_toled, estuve pensando en como se puede hacer lo que quieres. Y hay una manera de resolverlo sin el timer. Con la sentencia sleep() puedes indicar que se espere x milisegundos antes de continuar con la siguiente línea.
No se que guardas en el memo... ¿la ruta completa de la imagen correspondiente en la secuencia?

Si es así: podrías hacerlo con el for... nada de timer:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
  for i := 0 to memo1.Lines.Count - 1 do
    begin
      Image1.Picture.LoadFromFile(Memo1.Lines[i]);
      sleep(150);
    end;
end;

No se si entendí bien... pero espero haber aportado algo.
Saludos,


La franja horaria es GMT +2. Ahora son las 07:37:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi