procedure TForm1.Button1Click(Sender: TObject);
Var
Stext,Scopy:string;
begin
Stext:=Edit1.Text+':';
Label1.Caption:='0';//初始化三个默认值
Label2.Caption:='0';
Label3.Caption:='0';
ShowMessage(Stext+#13#10+'初始化三个填充框'+#13#10+'STest长度:'+inttostr(length(Stext)));
while length(stext)>0 do
//ShowMessage('开始');
Scopy:= copy(Stext,1,Pos(':',Stext)-1);
case StrToInt(sCopy) of
0..39:label1.Caption:=intTostr(strToint(label1.Caption)+1);
40..69:label2.Caption:=intTostr(strToint(label2.Caption)+1);
70..100:label3.Caption:=intTostr(strToint(label3.Caption)+1);
end;
Delete(sText,1,pos(':',sText));
end;
这是什么问题呀,一运行就死循环!
Var
Stext,Scopy:string;
begin
Stext:=Edit1.Text+':';
Label1.Caption:='0';//初始化三个默认值
Label2.Caption:='0';
Label3.Caption:='0';
ShowMessage(Stext+#13#10+'初始化三个填充框'+#13#10+'STest长度:'+inttostr(length(Stext)));
while length(stext)>0 do
//ShowMessage('开始');
Scopy:= copy(Stext,1,Pos(':',Stext)-1);
case StrToInt(sCopy) of
0..39:label1.Caption:=intTostr(strToint(label1.Caption)+1);
40..69:label2.Caption:=intTostr(strToint(label2.Caption)+1);
70..100:label3.Caption:=intTostr(strToint(label3.Caption)+1);
end;
Delete(sText,1,pos(':',sText));
end;
这是什么问题呀,一运行就死循环!
//ShowMessage('开始');
Scopy:= copy(Stext,1,Pos(':',Stext)-1);
这段一直在循环,当然死循环。没仔细看,不知道你要做什么,但是看你的缩进,这里至少要加上begin..end吧。
while length(stext)>0 do
begin
//ShowMessage('开始');
Scopy:= copy(Stext,1,Pos(':',Stext)-1);
case StrToInt(sCopy) of
0..39:label1.Caption:=intTostr(strToint(label1.Caption)+1);
40..69:label2.Caption:=intTostr(strToint(label2.Caption)+1);
70..100:label3.Caption:=intTostr(strToint(label3.Caption)+1);
end;
end;
这个条件永远满足
begin
//ShowMessage('开始');
Scopy:= copy(Stext,1,Pos(':',Stext)-1);
case StrToInt(sCopy) of
0..39:label1.Caption:=intTostr(strToint(label1.Caption)+1);
40..69:label2.Caption:=intTostr(strToint(label2.Caption)+1);
70..100:label3.Caption:=intTostr(strToint(label3.Caption)+1);
end;
Delete(sText,1,pos(':',sText));
end;
这个条件是永远成立的,所以是死循环。
死循环。
while length(stext)>0 do
//ShowMessage('开始');
Scopy:= copy(Stext,1,Pos(':',Stext)-1);
case StrToInt(sCopy) of
0..39:label1.Caption:=intTostr(strToint(label1.Caption)+1);
40..69:label2.Caption:=intTostr(strToint(label2.Caption)+1);
70..100:label3.Caption:=intTostr(strToint(label3.Caption)+1);
end;
=》
if length(stext)>0 then
begin
Scopy:= copy(Stext,1,Pos(':',Stext)-1);
case StrToInt(sCopy) of
0..39:label1.Caption:=intTostr(strToint(label1.Caption)+1);
40..69:label2.Caption:=intTostr(strToint(label2.Caption)+1);
70..100:label3.Caption:=intTostr(strToint(label3.Caption)+1);
end;
end;