Delphi7 我想用Timer控件让6个图片循环出现(这六个图片是挨着的)

就是1 2 3 4 5 6 1 2 3 4 5 6 1 2......这样,出现2时隐藏1,出现3时隐藏2......

各位高手指点啊 我是菜鸟

有一个简单的办法:
1、在窗体中放6个TImage控件,并为它们分别设置相应的Picture属性,放置不同的图片内容;
2、将6个TImage控件的大小调整为一致;
3、将6个TImage控件的Visible属性都设置为False;
4、在单元的Private段申明一个变量FCur:Integer;
5、在Timer的OnTimer事件中写代码,大意如下:
Image1.visiable:=true;
Image2.visiable:=false;

示例代码如下:(纯手工打造啊!)

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, jpeg;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
FCur:Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
FCur:=0;
for i:=1 to 6 do
begin
//设置6个Image控件的上、左、高、宽。
//它们的名字需要为Image1~Image6
(FindComponent('Image'+IntToStr(i)) as TImage).Visible:=false;
(FindComponent('Image'+IntToStr(i)) as TImage).Left:=10;
(FindComponent('Image'+IntToStr(i)) as TImage).Top:=10;
(FindComponent('Image'+IntToStr(i)) as TImage).Width:=100;
(FindComponent('Image'+IntToStr(i)) as TImage).Height:=100;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
begin
inc(FCur);
for i:=1 to 6 do
begin
//先把所有Image隐藏
(FindComponent('Image'+IntToStr(i)) as TImage).Visible:=false;
end;
//显示当前的Image
(FindComponent('Image'+IntToStr(FCur)) as TImage).Visible:=true;
if FCur>=6 then
FCur:=0;
end;
end.
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-05
用一个数组 imageArray 将6个图片组件保存起来,再用一个循环显示变量 a。
循环变量默认值是1,timer事件中,显示 imageArray[a],其他都隐藏,然后inc(a),如果a>5则a=1追问

我是菜鸟啊 看不懂 能发代码吗?谢谢了

如何使用Delphi7里timer控件?
在弹出的图像编辑窗口中,单击load键载入您所制造的封面。然后将Image控件的Autosize属性设为True,这样Image控件便能自动顺应图片的大小了。为了完成发起封面的定时封锁,再增加一个Timer控件,将其enable属性设为true以触发ontimer事情,Interval属性设为5000(即5秒),这两项属性操作便是在窗体显现5秒后触...

相似回答
大家正在搜