如何对创体中动态创建的控件进行操作,比如说FORM中的DBGRID,谢谢!

解决方案 »

  1.   

    var
      B:TButton;
    begin
      B:=TButton.Create(Self);
      B.Parent:=Self;
      B.Name:='DynamicBtn';
      TButton(FindComponent('DynamicBtn')).Caption:='ads';
      //就用FindComponent来访问
    end;
      

  2.   

    我的程序中用同一变量名循环创建了数个DBGRID,请问在创建后如何访问?有没有VC中的GetDlgItem()之类的函数.多谢了!
      

  3.   

    你可以定义一个全局的数组变量呀,类型设为Tdbgrid不就行了!
      

  4.   

    procedure TMain.ChangeSkinPopMenuHandler(Sender:TObject);
    begin
      with Sender as TMenuItem do
        begin
          //做你想做的
        end;
    end;
    我的是ChangeSkinPopItems[ChangeSkinPopi].OnClick:=ChangeSkinPopMenuHandler; 
    //应该都差不多吧?
      

  5.   

    定义一个全局的数组变量:
        我现在就这样用的。 
    var Label_M     :array[1..Max_Num] of TLabel ;
    for i:=1 to Max_Num do 
    begin
      Label_M[i]:=TLabel.Create(Self)
      With Label_M[i] do 
      begin
        Parent:=Form ;
        /////////////
      end;
    end;
    不知道有没有好的办法。。
      

  6.   

    定义全局的变量数组不是好办法,因为那样太浪费资源,比如动态创建可视化控件数组,程序要为该数组开辟很大的内存空间,可以在创建每个控件时赋给它一个Name值,创建后如果要在程序中控制它,可用FindComponent(Name:TComponetName)函数,它搜索程序中的控件,返回名字为Name的控件,如找不到,则返回nil