Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Hacer animación en delphi (https://www.clubdelphi.com/foros/showthread.php?t=73142)

jask2007 03-04-2011 01:03:32

Hacer animación en delphi
 
Que tal, saben que quisiera hacer una animación, o bueno simplemente que cada intervalo de tiempo(segundos) cambie una imagen, se mueva de dirección. Alguna idea de como hacerlo??

ecfisa 03-04-2011 07:19:44

Hola jask2007.

Supongo que queres secuenciar una serie de imágenes que representan un movimiento.

Como para aportarte una idea, podrías hacer:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    FNombres: array of string; // o también usando TStringList
    procedure CargarNombres(Ruta: string);
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

uses JPeg;

procedure TForm1.CargarNombres(Ruta: string);
var
  SR: TSearchRec;
  n: Integer;
begin
  if FindFirst(Ruta+'*.JPG',$FF,SR) = 0 then // en este ejemplo busca archivos .JPG
  begin
    n:= 0;
    repeat
      SetLength(FNombres,n+1);
      FNombres[n]:= Ruta+SR.Name;
      Inc(n);
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  CargarNombres('C:\Imágenes\');
  (* los siguientes valores los podes ajustar desde el Object Inspector *)
  Image1.Stretch:= True;
  Timer1.Interval:= 10;   // intervalo de tiempo a gusto
  Timer1.OnTimer:= Timer1Timer;
  Timer1Timer(Self);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
 Nom: string;
begin
  (* En el ejemplo son mostrados al azar *)
  Nom:= FNombres[Random(Length(FNombres)-1)];
  Image1.Picture.LoadFromFile(Nom);
end;

end.

Un saludo.


La franja horaria es GMT +2. Ahora son las 21:10:17.

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