我是这里的新用户,想请教大家一个问题
就是我想在程序运行的时候动态生成一个ComboBox和我窗体上本身的ComboBox1
的除了name属性以外其他属性都一样的控件  相当于是克隆一个出来
我不想一个属性一个属性的去附值,请教各位高手,我在线等待

解决方案 »

  1.   

    组件的父类TPersistent有一个Assign方法,不过是个虚函数,需要重写它,呵呵。参考《Inside VCL》第479页
      

  2.   

    将"一个属性一个属性的去附值"的代码放到一个帮助单元的过程里去,这是值得花的代价。
    技术上这个问题可以通过RTTI信息遍历属性以进行属性拷贝,但这个做法只会让你的代码变得复杂和低效。
      

  3.   

    可以把属性保存成ini文件,创建出来控件以后读取一下属性就可以了。
      

  4.   

    这些动态生成的方式我都会,是这样的我现在用到了XPMenu控件
    而在窗体产生后我TComboBox.create(self.ScrollBox2)的控件
    不能被XPMenu控件XP化,用XPMenu1.Active:=False;
    XPMenu1.Active:=True;后其他本身放上来的控件样式都会变化
    但唯独我动态生成的控件是不会变化的,所以我就想完全克隆一个
    ComboBox1试试看
      

  5.   

    尝试用TComboBox.create(self)来替换TComboBox.create(self.ScrollBox2)