创建运行时不可见的ActiveX控件

字体大小: 中小 标准 ->行高大小: 标准
我们经常需要创建不可见的ActiveX控制来实现某些非交互式的功能,就象Visual Basic里的时间控制,和图像列表控制一样。那么我们如何才能做到呐? 

其实很简单,在每一个ActiveForm实现单元的底部都有一个初始化部分

initialization 

  TActiveFormFactory.Create( 

  ComServer, 

  TActiveFormControl, 

  TActiveFormX, 

  Class_ActiveFormX, 

  1, 

  '', 

  OLEMISC_SIMPLEFRAME or OLEMISC_ACTSLIKELABEL, 

  tmApartment); 

 

第七个参数是MiscStatus, 这个参数告诉容器控件的缺省行为,也就是我们需要改变的部分。我们需要的标志是OLEMISC_INVISIBLEATRUNTIME。修改后的初始化部分是

  TActiveFormFactory.Create( 

  ComServer, 

  TActiveFormControl, 

  TActiveFormX, 

  Class_ActiveFormX, 

  1, 

  '', 

  OLEMISC_INVISIBLEATRUNTIME or OLEMISC_ACTSLIKELABEL, 

  tmApartment); 

 

你会注意到我用OLEMISC_INVISIBLEATRUNTIME替换了OLEMISC_SIMPLEFRAME OLEMISC_SIMPLEFRAME 表示可以容纳其他的控制,就好像一个容器,对于不可见控制大多数情况下是不需要的。

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/68439.html