怎么一次创建N个eidt?(代码)
谢谢

解决方案 »

  1.   

    用数组来做:var
      edtArr : Array [100] of TEdit;
    begin
      for i := 0 to 99 do
      begin
        edtArr[i] := TEdit.Create(self);
      end;
      

  2.   

    var
      edtArr : Array [0..5] of TEdit;
      i: Integer;
    begin
      for i := 0 to 5 do
      begin
        edtArr[i] := TEdit.Create(Self);
        edtArr[i].Width := 60;
        edtArr[i].Left := i*70;
        edtArr[i].Parent := Self;//此句不能少
      end;
    end;
      

  3.   

    不用数组也行。
    var
      edtTemp: TEdit;
      i: integer;
    begin
      for i := 1 to 10 do
      begin
        edtTemp := TEdit.Create(Self);
        edtTemp.Width := 10;
        edtTemp.Height := 10;
        edtTemp.Left := i * 10;
        edtTemp.Parent := Self;
      end;
    end;记得要free它们。
      

  4.   

    其实不Free也没关系,
    由Create(Self)指定了,
    Self会负责free它的。
      

  5.   

    换名话问一下,怎么表示此表表单中的第N个edit?(原本有的)
      

  6.   

    你如果要标识某一个EDIT(其它对象也一样)的话,
    可以给它的TAG属性赋一个特定的值就是了,比如:
    procedure TFrom1.Button1Click(Sender: TObject);
    var
      edtTemp: TEdit;
      i: integer;
    begin
      for i := 1 to 10 do
      begin
        edtTemp := TEdit.Create(Self);
        edtTemp.Width := 10;
        edtTemp.Height := 10;
        edtTemp.Left := i * 10;
        edtTemp.Parent := Self;
        edtTemp.Tag := i;//打了标记
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      i: Integer;
    begin
      for i := 0 to ComponentCount-1 do
      begin
        if (Components[i] is TEdit)and(Components[i].Tag = 2) then
        begin
          (Components[i] as TEdit).Font.Color := clRed;
          //other code
        end;
      end;
    end;
      

  7.   

    var
      cEdit: TEdit;
      i: integer;
    begin
      for i := 1 to 10 do
      begin
        cEdit:= TEdit.Create(Self);
        cEdit.Width := 10;
        cEdit.Height := 10;
        cEdit.Left := i * 10;
        cEdit.Parent := Self;
      end;
    end;