一个form放了8张image(每个image控件有两张不同状态的图片),现在要求做一个程序,当用户点击某个按键后,这8个图片轮流显示,如8张图片默认的image分别是,1,2,3,4,5,6,7,8,当轮到image1是,他的显示的图片就变成11。类似一些赌博游戏

解决方案 »

  1.   

    方法很多. 使用定时器即可.
    1.直接Load.
    2.将图片做成资源文件.
    3.使用ImageList.
    如第一种:
    img1.Picture.LoadFromFile('c:\1.bmp');
      

  2.   

    把所有图片放到imagelist中,用TIMER控件控制顺序或者随机获取图片并显示到IMAGE就行了
      

  3.   

    用imagelist
    “当轮到image1是,他的显示的图片就变成11了”  ——什么意思?
      

  4.   

    8个图片,比如初始化8张图片分别是刘1,张2,李3,王4....... 当点击开始,除非一个Timer,这时轮流撤换刘1变成图A,其他不变,接着张2变成A,刘1变回刘1,其他不变,一直下去,直到用户点停止,timer.enalbe=false,轮到那里,那张图片就是A.
      

  5.   

    我水平低,还是用imagelist吧。
      

  6.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ImgList, ExtCtrls;type
      TForm1 = class(TForm)
        Image1: TImage;
        Image2: TImage;
        Image3: TImage;
        Image4: TImage;
        Image5: TImage;
        Image6: TImage;
        Image7: TImage;
        Image8: TImage;
        ImageList1: TImageList;
        Button1: TButton;
        Timer1: TTimer;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      ImgIndex: Integer = 0;
    implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      Timer1.Enabled := True;   //开始
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      Timer1.Enabled := False;  //停止
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    var
      tmp: TBitMap;
      I: Integer;
    begin
      ImgIndex := ImgIndex + 1;
      if ImgIndex > 8 then ImgIndex := 0;  for i := self.ControlCount -1 downto 0 do
      begin
        if self.Controls[i] is TImage then
        begin
          tmp := TBitmap.Create; //临时图片资源
          if (self.Controls[i] as TImage).Name = 'Image' + IntToStr(ImgIndex) then
            ImageList1.GetBitmap(ImgIndex - 1, tmp) //当前激活图片
          else
            ImageList1.GetBitmap(8, tmp); //表示你希望的图片11      (self.Controls[i] as TImage).Picture.Assign(tmp);
          tmp.Free;
        end;
      end;
    end;end.
      

  7.   

    使用ImageList,在加上Timer定时即可
    更换图片简单的算法,设置i,如果i mod 10即可显示ImageList中的第n个
      

  8.   

    tks kampan
    to kampan
    现在有一疑问,每个pictureBox都有轮转限制次数。如pictureBox8最多可以轮转3次,第一次轮转结束选择到pictureBox8 ,第三次和第5次也选到pictureBox8,那么以后的轮转,pictureBox8就不能参加轮转啦!