unit Unit1; interface uses 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons; type 
TForm1 = class(TForm) 
Image1: TImage; 
Image2: TImage; 
Image3: TImage; 
BitBtn1: TBitBtn; 
procedure BitBtn1Click(Sender: TObject); private 
{ Private declarations } 
public 
{ Public declarations } 
end; var 
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); 
begin 
  image1.Picture.LoadFromFile('1.jpg'); 
  image2.Picture.LoadFromFile('2.jpg'); 
  image3.Picture.LoadFromFile('3.jpg'); 
  image1.Visible:=true; 
  image2.Visible:=true; 
  image3.Visible:=true; 
end; end. 如果是用多线程...3个image同时显示该怎麼写呢?

解决方案 »

  1.   

    Image应放置在线程中装载,这样在第一个image装载过程中,第二个image才能异步同时装载
    你需要创建一个线程类,然后执行线程的Execute方法
    几句话说不明白的,多看看线程的例子吧
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls, jpeg;type
      Tthread1 = class(Tthread)
        protected
        procedure Execute;override;
        end;
    type
      Tthread2 = class(Tthread)
        protected
        procedure Execute;override;
        end;type
      Tthread3 = class(Tthread)
        protected
        procedure Execute;override;
        end;type
      Tthread4 = class(Tthread)
        protected
        procedure Execute;override;
        end;
        
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Image1: TImage;
        Image2: TImage;
        Image3: TImage;
        Image4: TImage;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      mythread1:Tthread1;
      mythread2:Tthread2;
      mythread3:Tthread3;
      mythread4:Tthread4;
    begin
      image1.Visible:=false;
      image2.Visible:=false;
      image3.Visible:=false;
      image4.Visible:=false;
      mythread1:=Tthread1.Create(false);
      mythread2:=Tthread2.Create(false);
      mythread3:=Tthread3.Create(false);
      mythread4:=Tthread4.Create(false);
    end;procedure Tthread1.Execute;
    begin
      Form1.Image1.Picture.LoadFromFile('1.jpg');
      Form1.Image1.Visible:=true;
      FreeOnTerminate:=true;
    end;procedure Tthread2.Execute;
    begin
      Form1.Image2.Picture.LoadFromFile('2.jpg');
      Form1.Image2.Visible:=true;
      FreeOnTerminate:=true;
     end;procedure Tthread3.Execute;
    begin
      Form1.Image3.Picture.LoadFromFile('3.jpg');
      Form1.Image3.Visible:=true;
      FreeOnTerminate:=true;
    end;procedure Tthread4.Execute;
    begin
      Form1.Image4.Picture.LoadFromFile('4.jpg');
      Form1.Image4.Visible:=true;
      FreeOnTerminate:=true;
    end;end.这样写还是不行啊...
      

  3.   

    使用了VCL资源,还需要同步。