用如下方法动态生成了一组控件
       EditArry[i]:=Tedit.Create(ChengGoFaBu_F); 
       EditArry[i].Text:=Inttostr(i);
      EditArry[i].Left:=Trunc((i mod 10)*70)+30;
      EditArry[i].Top:=Trunc(i/10)*60+50;
      EditArry[i].Width:=60;
      EditArry[i].Height:=20;
      EditArry[i].Parent:=panel2;
      EditArry[i].Visible:=True;
      EditArry[i].Name:='EDT'+inttostr(i);  //控件名现在每个控件中都输入了一些数据,请问我如何才能在这些控件中找到值最大和最小的数。
并去掉最大的数和最小的数(如果最大的数和最小的数有重复,就各去掉一个),然后
将其它相加求和的值赋给另一个文本框。高手请帮忙,谢谢!

解决方案 »

  1.   

    如何遍历该数组,请给予个例子,我是新手,才用delphi,谢谢maozefa 
      

  2.   

    遍历数组知道了var
    I: Integer;
    A: array[0..9] of Integer;
    begin
    for I := 0 to 9 do 
    A[I] := I;还不知道如何求最大最小值,求和,有没有这样的函数呢?
      

  3.   

    你可以在动态生成EDIT的时候,用一个类型为TEDIT的动态数组记录下这些EDIT的引用,等输入完后,遍历这个EDIT数组就可以了。
      

  4.   


    uses Math;var
      I: Integer;
      A, B: Integer;
    begin
      A := StrToInt(EditArry[0].Text);
      B := A;
      for I := Low(EditArry) to High(EditArry) do
      begin
        A := Min(A, StrToInt(EditArry[I].Text));
        B := Max(B, StrToInt(EditArry[I].Text));
      end;
    end;
      

  5.   

    求和... 你在循环里加句"C := C + StrToInt(EditArry[I].Text))", 循环完了C := C - A - B不就完了么..
      

  6.   

    uses   Math; 
    var 
        I:   Integer; 
        A,   B, C:   Integer;
        Total: Integer; 
    begin 
        A   :=   StrToInt(EditArry[Low(EditArry)].Text); 
        B   :=   A; 
        Total := 0;
        for   I   :=   Low(EditArry)   to   High(EditArry)   do 
        begin 
            C   := StrToInt(EditArry[I].Text);
            A   :=   Min(A,   C);
            B   :=   Max(B,   C);
            Inc(Total, C);
        end; 
        Dec(Total, A + B);
    end;