Delphi 编写ActiveX控件(OCX控件)的知识和样例
4、 选择【ActiveX Control】选项卡,点击ok,打开【ActiveX Control Wizard】窗口;
5、 在【VCL Class Name】组合框中选择 VCL 类(如TStringGrid),单击Ok;
6、 添加代码;
7、 运行程序,生成ocx文件。
8、在Delphi中单击【Component】—>【Import ActiveX Control】菜单项,打开【Import ActiveX】窗口,在窗口中点击【Add】,然后选择ocx文件,然后单击Install按钮安装组件。如果成功,在ActiveX组件页中将显示该组件。
1、首先,要启动ActiveX控件向导,创建ActiveX项目
首先,要启动ActiveX控件向导,选择File菜单里的New命令,在弹出的对话框里选择ActiveX页签,然后双击ActiveX Control图标即可。向导中的第一个域要求选择一个要进行包装的VCL构件,点击选择TStringGrid。其他几个域取缺省值即可,如果需要包含版本信息等其他信息,也可以选上。点击OK按钮,向导将生成一个Delphi的ActiveX控件开发项目 StringGridXControl1,包括以下几个的文件:
1. 一个ActiveX项目文件(dpr后缀名),包含了启动、初始化一个ActiveX控件所需要的代码。通常是不需要修改这个文件的。
2. 一个类型库文件(tlb后缀名),定义和实现了ActiveX控件向外所提供的接口、属性、方法和事件。Delphi专门为这个文件提供 了一个Pascal版本的文件(tlb扩展名),而且自动维护这两个文件的一致性。
3. 一个ActiveX实现的文件(Pas扩展名),使用了Delphi ActiveX框架(DAX)定义和实现了这个ActiveX控件,具体实现类型库里定义的接口。这个文件是我们经常需要修改的。DAX是Delphi对ActiveX控件的COM规约的实现方式。
4. 如果选择了包括一个“关于”对话框的话,还有一个对应的对话框实现文件。
Delphi的ActiveX控件向导根据所包装的VCL构件的属性、方法和事件生成了ActiveX控件相应的属性、方法和事件。但是它没有把 VCL构件使用非OLE类型(如集合、数组等)的属性、方法和事件转换过去。例如,TStringGrid的Options属性是集合类型的, RowHeights是数组类型的,在控件向导所生成的属性中就没有这些属性。但是有时候偏偏这些属性、方法和事件是很重要的,这时就需要手工添加一些属性、方法和事件!