delphi if then else求助

procedureTForm1.Timer1Timer(Sender:TObject);vari:Integer;beginifi<10thenbegini:=i+1;l... procedure TForm1.Timer1Timer(Sender: TObject);
var
i:Integer;
begin
if i<10 then
begin
i:=i+1;
label.Caption := IntToStr(i) ;
end
else
begin
Timer1.Enabled := False;
end;
end;

end.
编译不能通过。我是想实现labl1 上数字从1显示到10
展开
 我来答
经朔S8
2009-06-30 · TA获得超过761个赞
知道小有建树答主
回答量:647
采纳率:0%
帮助的人:890万
展开全部
当然不能通过了,首先,label.Caption,这个label,是不是少了个编号什么的?比如label1
第二,即使编译通过了,label也不会显示1到10的,因为你的i变量是过程变量,每次触发这个事件时,i变量都会被这个Timer初始化掉。i<10这个条件永远也不能成立。

你可以把i声明为全局变量,初始化为0,就可以了。
比如,把
var i:integer;移到
implementation
var i:Integer;//移到这里
{$R *.dfm}
在FormCreate里面把 i:=0;

第二种改法,先把lable1的Caption先改为1,然后:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:=IntToStr(StrToInt(Label1.Caption)+1);
if StrToInt(Label1.Caption)=10 then Timer1.Enabled:=False;
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式