unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,jpeg;type
  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
image1.Picture.LoadFromFile('1.bmp');
end;procedure TForm1.Timer1Timer(Sender: TObject);
var
  I: Integer;
  w:string;
begin
for I := 1 to 31 do    // Iteratebegin
  w:=inttostr(i)+'.bmp';
 image1.Picture.LoadFromFile(w);
end;    // for
end;end.我想让他动态加载图片并且在timer1.timer固定的时间 (比如3秒) 显示下一图片不过运行的结果是只显示了一张!
不解??  
来自:迷糊, 时间:2004-4-17 12:49:15, ID:2564809
image1.Picture.LoadFromFile(w);
image1.refresh;  
来自:yostgxf, 时间:2004-4-17 12:49:40, ID:2564810
你刷新一下试一试,  
来自:wangqinyun2000, 时间:2004-4-17 12:55:03, ID:2564814
试试一就可以了,
image1.Picture.LoadFromFile(w);
image1.refresh;    
来自:wohoo76, 时间:2004-4-17 13:55:31, ID:2564894 | 编辑
可以显示 但是 3秒以后只有31.bmp显示 其他的都是一闪就过去了 问题还是没有解决 不信大家可以试试 !

解决方案 »

  1.   

    w:=inttostr(i)+'.bmp';
    Sleep(3000);
     image1.Picture.LoadFromFile(w);
      

  2.   

    把i声明成为共有变量。
    i=1;
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      w:string;
    begin
      inc(i);
      w:=inttostr(i)+'.bmp';
      image1.Picture.LoadFromFile(w);end;
      

  3.   

    procedure TForm1.Timer1Timer(Sender: TObject);begin
      timer2.enable:=false;
      image1.Picture.LoadFromFile(1.bmp);end;
    procedure TForm1.Timer2Timer(Sender: TObject);begin
      timer1.enable:=false;
      image1.Picture.LoadFromFile(2.bmp);end;
      

  4.   

    每显示一张图片后,image1要刷新一下,可以在image1.Picture.LoadFromFile(w);语句后或前面加一句image1.update;
      

  5.   

    inc(i);
    后要update
    if i=31 then
    dec(i);