我们经常需要创建不可见的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/68665.html