怎样Copy一个Grid控件到一个新的Grid控件? (连同Grid的列属性定义Copy)
======================================界面上已经存在一个定义好的Grid (第三方控件),
在运行过程中需要创建新的Grid控件,
新创建的Grid控件列属性等完全和已经存在的Grid相同,那么怎样Copy已存的控件到新创建的控件?

解决方案 »

  1.   

    这样行么:
    var
      dg1:TDBGrid;
    begin  dg1:=TDBGrid.Create(self);
    ///  dg1.Assign(DBGrid1);
      dg1:=DBGrid1;
      

  2.   

    经测试,这样可以
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      dg1:TDBGrid;
    begin
      DBGrid1.Columns[0].FieldName:='TestFd';
      dg1:=TDBGrid.Create(self);
    ///  dg1.Assign(DBGrid1);
      dg1:=DBGrid1;
      showmessage(dg1.Columns[0].FieldName);  // 这也出示'TestFd',说明DBGrid1的值已经赋给dg1;
    end;
      

  3.   

    AdvStringGrid1.SaveToFile('temp.txt'); 
    AdvStringGrid2.LoadFromFile('temp.txt');
      

  4.   

    这样会不会修改一个Grid中的内容后,另一个Grid的内容也修改了呢?
      

  5.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      dg1:TDBGrid;
    begin
      DBGrid1.Columns[0].FieldName:='TestFd';
      dg1:=TDBGrid.Create(self);
    ///  dg1.Assign(DBGrid1);
      dg1:=DBGrid1;
      showmessage(dg1.Columns[0].FieldName);  // 这也出示'TestFd',说明DBGrid1的值已经赋给dg1;
    end;///////////////////////////////////////////////不行的
    dg1:=DBGrid1;  //导致内存泄露
      

  6.   

    zhangl_cn(不做和尚了!) 
    内存泄漏还不是主要问题,dg1:=DBGrid1;是个指针赋值,直接把两个变量指到同一个对象了
    dg1.Columns.Assign(DBGrid1.Columns)
    这样应该行吧?
      

  7.   

    我想创建 ExpressQuantumTreeList 控件
      newTL := TcxTreeList.Create(self);
      
    界面上已经存在一个 cxTreeList1,
    我需要创建的 newTL 的所有设置和 cxTreeList1 一样,包括各列的属性
      

  8.   

    而且  newTL.Columns不能Assign