用动态创建数组控件,如果只是几个的话,窗体在创建和关闭的时候不会觉得慢。如果要是几十个的话,在窗体创建和关闭的时候就会发现很慢。我想请教各位高手,有什么办法解决这个问题。

解决方案 »

  1.   

    我怎么感觉不慢呢?var
      EdtArray : Array[1..54] of TEdit;procedure TForm1.Button1Click(Sender: TObject);
    var
      I, L, T : integer;
    begin
      L := 0;
      T := 0;
      for I := Low(EdtArray) to High(EdtArray) do
        begin
        EdtArray[I] := TEdit.Create(self);//将来由Form负责释放它
        EdtArray[I].Parent := self;
        EdtArray[I].Name := 'AutoEdt'+IntToStr(I);
        case I of
           1..18 : begin L := 2;  T := I; end;
          19..36 : begin L := 130; T := I-18; end;
          37..54 : begin L := 258; T := I-36; end;
          end;
        EdtArray[I].Left := L;
        EdtArray[I].Top  := (T-1)*21 +1;
        EdtArray[I].Text := EdtArray[I].Name;
        EdtArray[I].Show;
        end;
    end;
      

  2.   

    还不慢呀.你把代码放到.formcreate里和放在button1click里比效一样,就发现不一样了...这只过是建一个edit数组控件,要是在建些别的数组控件.多几个for循环,你再试试,不慢怪!!!!!!!!!
      

  3.   

    动态创建肯定要慢一些的。只要这种慢不是让人难以接受,就可以。它需要动态地从堆里分配内存,与application运行阶段就分配在全局数据区里的对象,完全不是一回事。
      

  4.   

    TO zuoansuifeng(左岸):我怕你... ^_^ 分是要放滴。过几天就放。
      

  5.   

    lihuasoft(学习低调做人)你很强呀。帮帮忙,用线程能做到不。给些意见!!!分都给你也行呀。。我是新来的。这分有用么???分没了不让发贴了。还是怎么的????
      

  6.   

    To 楼主:俺不接分了,Sorry。To zuoansuifeng(左岸):我放分了,你去接吧:http://community.csdn.net/Expert/topic/5369/5369874.xml?temp=.2256433
      

  7.   

    TO 左岸: 还有这个:http://community.csdn.net/Expert/topic/5369/5369936.xml?temp=.2784082