我在界面上放了n個edit輸入空間edit1,edit2.....editn
我要取的所有輸入框中輸入的整數的和
能不能用一個for 語句﹐邊判斷輸入是否合法﹐邊累加值?
 a: array of TRzEdit;
for i:=0 to n do
begin
  try
   strtoint(a[i]);
   count:=count+strtoint(a[i].text);
  except
    showmessage('輸入不時整數');
  end;
end這樣好象不行﹐應該怎么做?

解决方案 »

  1.   

    var
      i: integer;
      total: integer;
    begin
      total:= 0;
      for i:= 1 to n do
      begin
        total:= total+ strtoint(TEdit(FindComponent('Edit'+inttostr(i))).Text);
      end;
    end;
      

  2.   

    是否输入合法去你的keypress里面判断。
    procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (key in ['0'..'9',#8]) then key:=#0;
    end;还有既然放控件了,就不要在定义控件数组了。
      

  3.   

    var
      i: integer;
      total: integer;
    begin
      total:= 0;
      for i:= 1 to n do
      begin
        total:= total+ strtoint(TEdit(FindComponent('Edit'+inttostr(i))).Text);
      end;
    end;
      

  4.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
      i,Count:integer;
    begin
      Count := 0;
      for i:=0 to Components.ComponentCount - 1 do
      begin
        if Components[i] is TEdit then
        begin
          Count := Count + StrToInt(TEdit(Components[i]).text);
        end;
      end;
      Showmessage(IntToStr(Count));
    end;