书签 分享 收藏 举报 版权申诉 / 14

类型delphi之如何快速开发原生ActiveX控件.docx

  • 文档编号:18034877
  • 上传时间:2023-08-07
  • 格式:DOCX
  • 页数:14
  • 大小:291.44KB

var _info="";

for(var p in x){

    _info += p + ":

" + x[p] + "
";

}

document.getElementById("info").innerHTML = _info;

 

当然如果你用IE8的js调试功能,也能看到刚才定义的那些方法和属性:

注意一下这里还有其它很多属性,比如Caption,所以你在js中用alert(x.Caption)也能弹出ActiveForm的标题,这是我们通过IE/JS从外部来看ActiveX的,其实也能换个角度从delphi内部看下activex的结构,com技术号称就是一组通用的接口规范,所以我们在delphi内部确实也能发现不少接口:

MyActiveX.ridl中可以看到

libraryMyActiveX

{

 ...

 interfaceIMyForm;

 ...

...

表明IMyForm就是一个接口,再定位到MyActiveX_TLB.pas可以发现:

type

...

 IMyForm=interface;

 ...

 MyForm=IMyForm;

IMyForm=interface(IDispatch)

  ...

说明MyForm就是从IDispatch继承下来的一个接口

最后再到UMyForm.pas中可以看到

type

 TMyForm=class(TActiveForm,IMyForm)

   Edit1:

TEdit;

...

说明最终的运行窗口,就是继承自TActiveForm并实现了IMyForm的一个类

12.事件支持

打开MyActiveX.ridl,查看IMyFormEvents部分,可以看到delphi生成的ActiveX控件中已经预置了很多事件

dispinterfaceIMyFormEvents

 {

   properties:

   methods:

   [id(0x000000C9)]

   voidOnActivate(void);

   [id(0x000000CA)]

   voidOnClick(void);

   [id(0x000000CB)]

   voidOnCreate(void);

   [id(0x000000CC)]

   voidOnDblClick(void);

   [id(0x000000CD)]

   voidOnDestroy(void);

   [id(0x000000CE)]

   voidOnDeactivate(void);

   [id(0x000000CF)]

   voidOnKeyPress([in,out]short*Key);

   [id(0x000000D0)]

   voidOnMouseEnter(void);

   [id(0x000000D1)]

   voidOnMouseLeave(void);

   [id(0x000000D2)]

   voidOnPaint(void);

 };

我们可以用javascript来响应这些事件,比如就拿我们最熟悉的OnClick事件,js中要这么处理:

52D17094-0687-4A2F-B2DB-30F3189AC659'align=centerhspace=0vspace=0>

 alert('你点击了ActiveX控件');

运行后,鼠标在ActiveX的空白处点击,会弹出一个警告框:

"你点击了ActiveX控件"

13.其它问题

前面提到了带返回值的function不好弄,其实这个不是什么大问题,完全可以迂回用procedure与属性解决

比如我们可以定义一个带参数的procedure,js调用时传入参数,然后在procedure内部,对参数进行处理后,将其赋值为ActiveX的任何一个类型匹配的属性,比如前面提到的Caption属性,然后js获取Caption属性,相当于就是ActiveX处理后的返回值了

 

注:

截图不易,打字很累,允许转载,但请注明来自菩提树下的杨过 

 

源代码下载:

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
delphi 如何 快速 开发 原生 ActiveX 控件
提示  冰点文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:delphi之如何快速开发原生ActiveX控件.docx
链接地址:https://www.bingdoc.com/p-18034877.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2


收起
展开