天哪,这么简单的代码怎么不好使?我想没搁一秒image里更换一张图片,怎么不好使! (40分)

  • 主题发起人 主题发起人 xiaoxiami2
  • 开始时间 开始时间
X

xiaoxiami2

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tmain.Timer7Timer(Sender: TObject);
var
wl:boolean;
begin
if wl=true then
begin
image2.Picture.LoadFromFile('jsjd_1.bmp');
wl:=false;
end
else
begin
image2.Picture.LoadFromFile('jsjd_2.bmp');
wl:=true;

end;
end;
 
什么地方不好使了,你应该把错误说出来啊。
上面的wl是局部变量,它的初始值你是在什么地方定义的。如果没有定义的话,每次执行
该段代码时它的值都会被系统初始化为true,也就是说,它载入的都是jsjd1.bmp。
你应该把它定义在单元form定义下的private部分,然后在formshow事件中对它赋初值。
 
應該改為:
procedure Tmain.Timer7Timer(Sender: TObject);
var
wl:boolean;
begin
if wl=true then
  begin
     image2.Picture.LoadFromFile('jsjd_1.bmp');
     wl:=false;
   end
else
   begin
     image2.Picture.LoadFromFile('jsjd_2.bmp');
     wl:=true;
 end; //加個end
end;

你原來的代碼在LoadFromFile('jsjd_1.bmp')后把wl置false后
在最后又置回true了!


end;
end;
 
補充一下

樓上的也對
 
private
wl:boolean;


procedure Tmain.Timer7Timer(Sender: TObject);
begin
if wl=true then
begin
image2.Picture.LoadFromFile('jsjd_1.bmp');
wl:=false;
end
else
begin
image2.Picture.LoadFromFile('jsjd_2.bmp');
wl:=true;
end;
end;

你的这个wl为局部变量,又没有赋值所以每次进入这个过程时,wl的值一直都为false。

解决方法:在最前面的private处定义全局变量,并在creat事件中初始化
 
多人接受答案了。
 
后退
顶部