把一个V C L控件转换成A c t i v e X控件要经历以下步骤:
1) 向导决定是哪个单元包含了选中的V C L控件,然后经编译器处理,由编译器生成与V C L控件属
性、方法和事件相对应的特殊符号信息。
2) 为这个项目创建一个类型库,其中包括一个具有属性和方法的接口、一个事件调度接口和一个
表示A c t i v e X控件的控件类。
3) 向导遍历V C L控件的所有符号信息,把其中的属性和方法加到接口中,把事件加到调度接口中。
注意在介绍第3步时产生了下列问题:哪些属性、方法和事件被加到类型库中?[red]只有那些属
性、方法的参数和返回值、事件的类型与自动化兼容的才能被加到类型库中[/red],与自动化兼容的
数据类型有:B y t e、S a m l l I n t、I n t e g e r、S i n g l e、D o u b l e、C u r r e n c y、T D a t a Ti m e、Wi d e S t r i n g、
WordBool、PSafeArray、TDecimal、OleVariant、IUnknown和IDispatch。
不过,这个规则也有例外,如果参数的类型是T S t r i n g s、T P i c t u r e和T F o n t,也是允许的。对于这
些类型,向导用特殊的适配器对象将其封装为兼容的类型。
4) 一旦所有的属性、方法和事件加到类型库中后,类型库编辑器就产生一个包含类型库内容的
Object Pascal译本。
5) 向导生成A c t i v e X控件的实现文件,这个文件中有一个TA c t i v e X C o n t r o l对象,它实现了在类型
库中描述的接口,并自动实现原来在V C L中的属性、方法和事件。