如何解析DFM,动态创建组件?(100分)

  • 主题发起人 主题发起人 jzrenxiaoyan
  • 开始时间 开始时间
to chnplzh:
谢谢你,资料收到!
现在还有个问题:
readcomponent,writecomponent
readcomponentres,writecomponentres,
readcomponentresfile,writecomponentresfile,
它们的区别与联系,我看资料看的晕乎,还不是太清楚
根据dfm文件,在界面上动态创建出来所有的控件
以及修改控件属性后,再把所有控件属性保存到DFM中
应该分别用上面的哪个函数过程?
 
WriteComponentRes和ReadComponentRes配对使用。
readcomponent和writecomponent配对使用。
readcomponentresfile和writecomponentresfile配对使用。

其实。建议楼主去看一下它的源代码,里面的区别你一下子就知道了。
 
现在还有问题是:
axe给出的源代码可以把不含事件的.dfm文件中的所有控件属性读出来,但是如果dfm文件中含有事件属性的话,如:OnClick = Button2Click 就不可以了!
高手怎么解决????
如果不用ReadComponent;
用readcomponentresfile,能解决这个问题吗?
 
TO 高手:
还有两个棘手问题不能解决:
1。不能对含有事件的.dfm文件进行解析,不能动态创建控件
2。不能对含有菜单的。DFM文件进行解析,不能动态创建菜单

100分奉送!!!!!!!!!!
 
请注意:DFM只是一种资源文件,它对应的代码均在.pas文件中,这就是为什么无法解析事件等,而且对DFM加载时,最好先扫描该文件,找到类似 OnClick = Click1 这样的语句,并将其删除。

当然,在加载DFM文件后,你可以动态再对事件如 OnClick 进行定义。
 
三思而后行吧,装载控件之后,会执行控件里面的Assign过程,将一些属性赋给控件,我发现有些控件的Assign过程,不是将全部属性赋给控件,有部分丢失,装进的控件与原设计事后,有些分别,可能要自己赋值。
 
多人接受答案了。
 
后退
顶部