delphi6?OCX控件的制作

来源:百度文库 编辑:神马文学网 时间:2024/04/28 16:27:05
delphi6 OCX控件的制作
(2009-09-25 14:47:09)转载
标签:it
最近做了一个ocx,在网上查了许多东西,我自己简单也做出来了,在这里总结下。
1、首先,file-new-other-activex,我选择了active form,ok后,

2、new activex name 里填写控件名称,也就是最终单元里对象的名字。
3、可以更改下面unit 和 project name 名字,但是在这里要注意,project名字
不能和上面active name相同,会报错!然后ok。
4、显示窗体和我们一般的form没什么区别,下来该加接口了。
I、当我们做接口函数到时候也需要一些其他的非接口函数的functions,所以在
文件前面如同一般的函数一样申明,然后在后面写实现部分。(前面写完申请后
,光标放在函数名字上,按住ctrl+shift + c,在后面就会自动形成实现函数框
架)
II、加接口函数:在form窗体上,选择 edit-add to interface,在里面申明函
数头。如 funcion printruler(sjjs :double):double; 点击Ok后,你就会在
unit里看到申请的函数申明及在后面的实现部分的框架。
如:

需要几个接口,你就加几个函数说明。
当然,加接口还有其他方法,如 也可以在view - type library里新建一个接口
method,我现在只用到这些,所以暂时只能写这么肤浅。
具体步骤如下:
I、新建一个method,然后命名,如图所示:

II、参数设置,这里的数据类型和delphi基本的数据类型有别,一般的字符串定
义为bstr,相当于widestring类型。
LPSTR:一个32位指向字符串的指针,相当于char *
LPCSTR:一个32位指向字符串常量的指针,相当于const char *;
LPWSTR:一个32位指向Unicode字符串指针,相当于wchar_t *
LPCWSTR:一个32位指向Unicode字符串常量指针,相当于const wchar_t *
(我暂时知识面知只到这里,学习中。。。)
III、如果函数有返回值,则再定义一个参数“value”, tpe 设定为一个指针型
,即带“*”的类型(如果里面没有你要的带*的类型,你可以手工加个*)

modifier设定为如图所示,这样才会有返回值。

还要注意,参数的顺序一定要注意,在这里设定好了之后,在函数体内不可自行
乱改。
5、函数功能完成后,(假如刚才的控件工程我名字我按默认的
‘ActiveFormProj1’),那么在project-buildActiveFormProj1,编译完后,在
程序根目录下就生成了‘ActiveFormProj1.ocx’.
这里需要注意的是,这是个控件工程,不能像一般的工程一样去run,会报错!

这样一个控件就做好了。
附加:
如果你要测试你的控件功能,你可以自己把自己的控件加载进来,然后调着
试一下,我是这样子做的,当然我看高手还有其他很好的办法。
加载控件的办法:
I、component-import activex control -add (project - import type
library-add也可以,后面的步骤一致),下面的palette page 你可以根据你的需
要选择,一般都在activex面板下。类名也可以更改,建议在做控件的时候就把名
字一次建好,用起来一看简单明了。

II、然后install,如果已经加载过一次,会提示你要不要replace it,ok后,选
择包窗体,

你可以选择你要加载进去的包文件(*.dpk),ok后,问是否要rebuild包,

yes后,出现类似的提示,

就说明加载成功。
你可以在你才选择的面板里,去查看是否有才加的控件按钮,如activex面板
下,如图所示。

加载成功后,就可以用自己的控件了。
如果加载失败,原因 是多方面的,卸载控件,重新加载。
卸载控件:
I、component-install packages-borland user components,可以打开
components按钮 看一下有没有你加的控件在里面,

II、然后点击edit,弹出如下窗口,yes后,在弹出的窗体里选中你的控件名,
remove后,从包里删除掉那个控件的信息。

III、回到刚才的窗口(component-install packages),remove掉那个包信息,yes后,就完成了卸载。
IV、但是,卸载了那个不对控件后,有时需要把之前的包再重新加进来,
加包方法很简单,

打开file-open,选择dpk文件,加进来,点击install就可以了。
粗略的写写,大家分享下!
分享到新浪微博
阅读(125)┊评论 (0)┊收藏(0)┊ 转载┊分享┊打印┊举报
已投稿到:排行榜圈子
转载列表:
转载 转载是分享博文的一种常用方式...
前一篇:启示~~
后一篇:关于编码的一些总结
评论重要提示:警惕虚假中奖信息,点击查看详情
[发评论]
暂无评论。
发评论随时随地抢沙发!
插入表情
登录名: 密码:找回密码注册 记住登录状态建议在网吧/公用电脑上取消该选项
昵   称:
验证码:',1)">
匿名评论
发评论 以上网友发言只代表其个人观点,不代表新浪网的观点或立场。