我在窗体上有50个TEdit控件,我想取前n(n<50且是个不固定的数)个edit的内容
放到一个数组中,怎么才能实现呢?
谢谢大家!

解决方案 »

  1.   

    For I:=0 To ControlsCount-1 Do
      IF Controls[1] IS TEdit Then Begin
         //在这里写入处理代码.
        
      End;
      

  2.   

    首先要定义一个动态数组
       EditTexts:varray of string;
    setlength(EditTexts,n);
    j:=0;
    For I:=0 To ControlsCount-1 Do
      if IF Controls[1] IS TEdit Then 
       begin
           j:=j+1;
           if j<=50  then
           edittexts[j]:=TDBEdit(Controls[i]).text
           else
           break;
       end;
      

  3.   

    对不起,上面有错误,
    if j<=50 then
    应该是
    if j<=n then
      

  4.   

    Index:=1;
    for i:=0 to ComponentCount-1 do
      if (Index=n) then
        exit
      else if Components[i].ClassType=TEdit then
      begin
        A[Index]:=(Components[i] as TEdit).Text;
        Index:=Index+1;
      end;
      

  5.   

    因为你要求的是取前面N个,因此edit的命名应该有一定的规律
    至于搜寻的程序,可以这样写:var
      str : String;
    for i := 1 to n do
    begin
      str := str + Tedit(findcomponent('edit' + inttostr(i))).text;
    end;这里,我把每一个edit的名字定义为editi,i是数字