正常开发是在设计态,我的要求是在运行的时候,能创建个TEDIT,TLabel等控件,创建出来就跟设计态时一样,可以修改属性,鼠标拖动等,而不是创建出来的就是运行态的控件。有点象用报表设计软件,可以拖编辑框下来一样。最好有例子贴出来。

解决方案 »

  1.   

      一.简单的方法,就是用图片来代替.托动完成后,再完成控件的动态创建.
     二.建议研究一下,*.dfm,这种类型的文件,你只要保存了信息,该控件就会生成.可以用来序列化控件
     
      

  2.   

    简单问题。
      1. 动态创建出控件后,子类化一下,截获消息处理就OK了。
      2. 属性编辑,使用RTTI实现。
      3. 使用流操作中的WriteComponent和ReadComponent就可以持久化。
      

  3.   

    ghy412 
    用心良苦 
    等 级:
     发表于:2007-11-19 14:32:115楼 得分:0 
    用图片来代替,托动完成后,再完成控件的动态创建.   ---正解  
     
      用图片的方式不行,比如拖过来个label,怎么改内容哩?是design阶段,用图片代替不直观,也不好排列。etomahawk 
    一意孤行 
    等 级:
     发表于:2007-11-19 14:49:448楼 得分:0 
    简单问题。 
        1.   动态创建出控件后,子类化一下,截获消息处理就OK了。 
        2.   属性编辑,使用RTTI实现。 
        3.   使用流操作中的WriteComponent和ReadComponent就可以持久化。 
     
    有没有具体的例子?
      

  4.   

    ghy412   
    用心良苦   
    等   级: 
      发表于:2007-11-19   14:32:115楼   得分:0   
    用图片来代替,托动完成后,再完成控件的动态创建.       ---正解     
      
        用图片的方式不行,比如拖过来个label,怎么改内容哩?是design阶段,用图片代替不直观,也不好排列。 
    -----一切东西都要自己实现,类似开发一个delphi,它有自己的属性和事件窗口,以前见过这样的系统。
      

  5.   

    delphi盒子上有一个例子: 一个模拟Delphi的代码编辑器 v0  不过盒子现在的速度好慢,半天打不开。看到主页上还写着要出售的公告,郁闷!:(
      你上去找找看吧。
      

  6.   

    要是找不到我传给你。
    MSN: [email protected]
      

  7.   

    同意ghy412用组件持久化机制实现控件的加载、存储,
    主要用到TStream.ReadComponent、TStream.WriteComponent,
    具体可以看《inside vcl》第8章用RTTI实现属性设计器,
    主要用到TypInfo.pas里的相关函数再实现一个支持拖放的窗体设计器
    拖放、停靠不用多说了吧