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 展开
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 展开
展开全部
当然不能通过了,首先,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;
第二,即使编译通过了,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;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询