sum:=0;
for I :=0 to 窗口名.commponentcount-1 do
begin
  if 窗口名.commponents[I] is TEdit then
    begin
     if length(TEdit(窗口名.commponents[I]).text)>0 then
        try 
           sum:=sum+strtofloat(TEdit(窗口名.commponents[I]).text);
        except
           continue;        
    end;
end;

解决方案 »

  1.   

    function MyStr:String;
    function TForm1.MyStr:String;
    var ii: Integer;
    begin
      Result := '';
      for ii := 0 to Form1.ControlCount - 1 do
      if (Form1.Controls[ii] is TEdit) then
        Result := Result + TEdit(Form1.Controls[ii]).Text;
    end;
      

  2.   

    var  I: Integer;
      Temp: TComponent;
    x:integer;
    begin
    x:=0;
      for I := ComponentCount - 1 downto 0 do
      begin
        Temp := Components[I];
        if (Temp is TEDit) then
        begin
        x:=x+strtoint(temp.text);
        end;
      end;end;
      

  3.   

    function CalcEditSum(mOwner: TComponent): Real;
    var
      I: Integer;
    begin
      Result := 0;
      for I := 0 to mOwner.ComponentCount - 1 do
        if mOwner.Components[I] is TEdit then
          Result := Result + StrToFloatDef(TEdit(mOwner.Components[I]).Text, 0);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Caption := Format('%f', [CalcEditSum(Self)]);
    end;
      

  4.   

    不是对窗体上面的所有edit取值,因为有的窗体我只想对
    1,2。3求值。而对于另外一个我要对1,2求值,这样子好实现吗?
      

  5.   

    给edit.tag进行复职,edit1.tag:=1;edit2.tag:=1;edit3.tag:=3;
    edit4.tag:=2;edit5.tag:=3
    然后对tag值相等的进行统计
      

  6.   

    for i := 0 to form.componentcount - 1 do
      if components[i] is TEdit then
        //你的操作