那一位大侠可以使listview控件中各项图标不停的转动。那一位解决了,有一定的报酬的。可以送一个企业邮箱啊 (200分)

  • 主题发起人 主题发起人 sinooa
  • 开始时间 开始时间
S

sinooa

Unregistered / Unconfirmed
GUEST, unregistred user!
说明:当listview1.viesstyle:=vslist;
假设imagelist1中有10 个图标,还有一个Timer控件,如何实现图标不停的转动啊。
希望大家给出源代码,我写的代码如下:但是只能看见改变一次啊!
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
begin
for i:=0 to 15 do
begin
listview1.Items[1].ImageIndex :=i;
sleep(100);
end;
end;


我的邮箱是:sandy@esinosoft.com
OICQ:13725905
 
从你的代码来分析都是有问题的,在timer的事件里,你一次就把图标循环了一遍,所以肯定
是只看到一个图标。可以这样做,定义一个全局变量
var
IconIdx:Integer;


在timer事件里
if IconIdx > 15 then IconIdx := 0;
IconIdx := IconIdx + 1;
ListView1.Items.Item[1].ImageIndex := i;

 
你好? 谢谢你给我回答这个问题,我想问一下,你对OICQ研究过吗。
你知道OICQ使用的时是如何实现图标的改变的吗?
 
没研究过,可能用的是自己写的控件,用timer也可以做到类似的效果
 
自己写的控件,里面都有一个imagelist ,触发一个事件,他就自动的换imageindex
 
你要什么样的报酬啊!但是你能不能讲一下那个全局变量的作用是什么,我可以理解为一个
值,只要TIMER事件不结束,那个变量就从0开始对吗
 
可不可以把你写的控件让大家共同使用啊?
希望你看到你们的大作啊!
我的邮箱是:hejiwang@esinosoft.com
 
var
Form1: TForm1;
k:integer;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
i,j:integer;

begin
k:=k+1;
if k=15 then k:=0;
for i:=0 to 15 do
begin
j:=i+k;
if j>15 then
begin
j:=j-15;
end;
listview1.Items.ImageIndex :=j;
sleep(100);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
k:=0;
end;

end.
 
调试通过,有问题也是细节的小问题,哈哈,基本思路是对的.
 
更正:j:=j-16;
 
送企业邮箱,请联系 ok923@163.net
 
把分给我就行,如果实在要感谢我,就把你的企业邮箱的用户名和密码发给我
cxz@gsta.com
 
多人接受答案了。
 
后退
顶部