请问:如何让ActiveForm做的(控件)OCX导到Delphi中为非可视组件?(不知可不可行)(50分)

  • 主题发起人 主题发起人 greenbamboo
  • 开始时间 开始时间
G

greenbamboo

Unregistered / Unconfirmed
GUEST, unregistred user!
将form做成透明的吧,或将visable设为False试一试
 
创建运行时不可见的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 表示可以容纳其他的控制,就好像一个容器,对于不可见控制大多数情况下是不需要的。
///////摘录别人的
 
后退
顶部