在使用FOR... do 报错误,如果用 while如何改(100)

  • 主题发起人 主题发起人 woodyou
  • 开始时间 开始时间
W

woodyou

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TFrm_AddUser.strngrdsearchid(mysearch : string); var a:Integer; begin for a:=1 to strngrduser.rowCount-1 do begin if Trim(strngrduser.Cells[1,a] )=mysearch thenExit elsea:=a+1; end; end;竟然通不过,报E2081 Assignment to FOR-Loop variable 'a'如果用 while如何改
 
procedure TFrm_AddUser.strngrdsearchid(mysearch : string);var a:Integer;begin for a:=1 to strngrduser.rowCount-1 do begin if Trim(strngrduser.Cells[1, a]) = mysearch then Exit // else // 报错原因是:Delphi 的 For 语句里循环变量不能手动修改 // a:=a+1; // 为什么要自加一呢?for 循环本身会给 a 自加一的 end;end;// 改成 While 语句procedure TFrm_AddUser.strngrdsearchid(mysearch : string);var a:Integer;begin a := 1; while a <= strngrduser.rowCount -1 do begin if Trim(strngrduser.Cells[1, a]) = mysearch then Exit; a := a + 1; end;end;
 
在for...do...循环中,不能显式的写a:= a +1 ,直接用forprocedure TFrm_AddUser.strngrdsearchid(mysearch : string); var a:Integer; begin for a:=1 to strngrduser.rowCount-1 do begin if Trim(strngrduser.Cells[1,a] )=mysearch thenExit; //else//a:=a+1; end; end;用while的话就是楼上的.
 
procedure TFrm_AddUser.strngrdsearchid(mysearch : string); var a:Integer; begin for a:=1 to strngrduser.rowCount-1 do begin if Trim(strngrduser.Cells[1,a] )=mysearch thenExit; //else//a:=a+1; end; end;
 
后退
顶部