创建运行时不可见的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 表示可以容纳其他的控制,就好像一个容器,对于不可见控制大多数情况下是不需要的。
///////摘录别人的