delphi界面处理 一个form放了8张image(每个image控件有两张不同状态的图片),现在要求做一个程序,当用户点击某个按键后,这8个图片轮流显示,如8张图片默认的image分别是,1,2,3,4,5,6,7,8,当轮到image1是,他的显示的图片就变成11。类似一些赌博游戏 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 方法很多. 使用定时器即可.1.直接Load.2.将图片做成资源文件.3.使用ImageList.如第一种:img1.Picture.LoadFromFile('c:\1.bmp'); 把所有图片放到imagelist中,用TIMER控件控制顺序或者随机获取图片并显示到IMAGE就行了 用imagelist“当轮到image1是,他的显示的图片就变成11了” ——什么意思? 8个图片,比如初始化8张图片分别是刘1,张2,李3,王4....... 当点击开始,除非一个Timer,这时轮流撤换刘1变成图A,其他不变,接着张2变成A,刘1变回刘1,其他不变,一直下去,直到用户点停止,timer.enalbe=false,轮到那里,那张图片就是A. 我水平低,还是用imagelist吧。 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. 使用ImageList,在加上Timer定时即可更换图片简单的算法,设置i,如果i mod 10即可显示ImageList中的第n个 tks kampanto kampan现在有一疑问,每个pictureBox都有轮转限制次数。如pictureBox8最多可以轮转3次,第一次轮转结束选择到pictureBox8 ,第三次和第5次也选到pictureBox8,那么以后的轮转,pictureBox8就不能参加轮转啦! 类的创建 代码一执行就自动关闭主窗体。不知道是什么原因? 为什么加了cancel仍然保存了记录? 再开一帖,两帖一起接分!想在framesell中获得另一个窗体(或frame)的参数,编译时出错!高手呢?在线等! 最近有网友问怎么隐藏IP地址,在这里帖出来,不是我写的。 delphi中记录定位问题!!!在线等待!!! 这个语句怎么写? 纯属学术问题:如何用程序复制瑞星的软盘。 请问谁有关于用ADO数据库编程的程序代码,给我粘点。谢谢!来着有分! 如何用flash控件连续播放动画? 关于数据实时刷新的问题 关于delphi字符串一个很怪诞的问题!
1.直接Load.
2.将图片做成资源文件.
3.使用ImageList.
如第一种:
img1.Picture.LoadFromFile('c:\1.bmp');
“当轮到image1是,他的显示的图片就变成11了” ——什么意思?
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.
更换图片简单的算法,设置i,如果i mod 10即可显示ImageList中的第n个
to kampan
现在有一疑问,每个pictureBox都有轮转限制次数。如pictureBox8最多可以轮转3次,第一次轮转结束选择到pictureBox8 ,第三次和第5次也选到pictureBox8,那么以后的轮转,pictureBox8就不能参加轮转啦!