如何快速开发原生activex控件

Ronny 2024-05-26 05:52:15
最佳回答
activex技术虽然是一项古老的技术,但是却有着广泛的应用,支付宝的密码输入控件,各大银行的密码输入控件,网页聊天室中的截屏功能,网页播放器中的p2p播放...甚至flash,silverlight等等,在ie中都表现为activex。虽然c#也能开发"用于网页的com应用",能达到类似activex的效果,但是有一个要命的问题是必须得安装几百m的.net framework框架,如果仅仅为了安全的输入一个密码,而要用户下载几百m的安装程序,这是很多人不能接受的,delphi做为win32下的原生开发工具,能很好的支持微软各种"古老"的经典技术。(再做点小广告:delphi的kyrix版本还能编译跨**的应用哦!)   ok,开工吧:  开发工具:推荐用delphi 2010(d7也可以,不过添加属性,方法等过程要手动,稍微麻烦点)   1.启用delphi2010-->file->new->other-->active library  2.项目命名为myactivex  3.file-->s**e all 全部保存实际上这样就能编译了,不过只是空的dll  4.file-->new-->other-->active form  改名为myform  将对应的单元文件,保存为umyform.pas  5.打开myacitvex.ridl文件,切换到design视图,选中imyform接口,右击new-->property 添加一个属性msg  将msg属性的type改为bstr 即widestring类型  完了之后,点击工具栏中的refresh implementation(即上图中工具栏中圈起来的部分)--这一步很重要,点击之后,它将自动生成属性msg对应的声明和实现代码模板6.打开umyform.pas--即activeform对应的单元,找到set_msg以及get_msg的实现部分,补充代码如下:function tmyform.get_msg: widestring;begin    result:=_msg;end;procedure tmyform.set_msg(const value: widestring);begin  _msg := value;end;  当然tmyform的private部分,得先加一个私有成员 type  tmyform = class(tactiveform, imyform)  private    { private declarations }    _msg:widestring;...  这样我们就为即将生成的activex控件,添加了一个字符串类型的属性msg,下面来测试一下:  7.编译项目,会生成一个myactivex.ocx,在运行栏里输入  regsvr32 c:\users\jimmy.yang\desktop\delphi_activex\myactivex\myactivex.ocx  注:这里ocx的路径,请各位根据自己的实际路径修改  这样就完成了ocx的注册。  8.放到html里测试一下:<object id='x' name='x' classid='clsid:52d17094-0687-4a2f-b2db-30f3189ac659' align=center hspace=0 vspace=0 ></object><script type='text/j**ascript'>var x = document.getelementbyid("x");alert(x.msg);</script>  关于clsid在哪里查看,打开:myactivex_tlb.pas文件,定位到下面这里:const  // typelibrary major and minor versions  myactivexmajorversion = 1;  myactivexminorversion = 0;  libid_myactivex: tguid = '{49138437-8265-4b1a-9eae-d0f615d68464}';  iid_imyform: tguid = '{54a20855-29a3-4c92-85de-a419da457c7a}';  diid_imyformevents: tguid = '{60bbc967-e1e6-4e98-bae5-776bfd06e9cc}';  class_myform: tguid = '{52d17094-0687-4a2f-b2db-30f3189ac659}';其中 class_myform: tguid对应的就是classid  运行后,除了弹出一个空白的警告框,暂时看不到其它:)(可不就是这样么?msg属性没给任何初始值,当然是空字符串,所以弹出一个空的警告框是正常的)  9.我们再来添加一些控件和方法,以验证刚才设置的属性确实有效  在myform上添加一个文件框,一个按钮   按钮的事件如下:procedure tmyform.button1click(sender: tobject);begin  _msg:= self.edit1.text;end;  即把文本框的值赋给属性msg  再继续定位到set_msg,略做修改procedure tmyform.set_msg(const value: widestring);begin  _msg := value;  self.edit1.text := _msg;end;  即设置msg属性时,同时也把值显示在文本框里,以便等会儿我们好测试在js中给activex属性赋值的效果  ok了,再来测试一下,编译一下,如果通不过,请先运行  regsvr32 c:\users\jimmy.yang\desktop\delphi_activex\myactivex\myactivex.ocx /u  将刚才注册的ocx反注册,同时关掉浏览器,不然该ocx文件一直被占用,无法更新.  修改一下html的代码:<object id='x' name='x' classid='clsid:52d17094-0687-4a2f-b2db-30f3189ac659' align=center hspace=0 vspace=0 ></object><hr /><input type='button' value='显示msg属性的值' onclick='showmsg()'/><input type='button' value='设置msg属性的值' onclick='setmsg()'/><script type='text/j**ascript'>var x = document.getelementbyid("x");var showmsg = function(){    alert(x.msg);}var setmsg = function(){    x.msg = 'js传过来的值';}</script> 20210311
汇率兑换计算器

类似问答
  • 如何快速发现主力控盘的股票?
    • 2024-05-26 15:49:51
    • 提问者: 未知
    如何快速发现主力控盘的股票?什么是主力控盘的股票?所谓“主力控盘”的股票,就是指那些有主力资金介入的股票,而且,主力资金持有流通盘的比例达到了一定的:-控盘,主力,股票,快速
  • 在ie浏览器的选项中怎样启用activex控件
    • 2024-05-26 13:40:45
    • 提问者: 未知
    可以在internet选项中启用activex控件。2113 1、打开ie浏览器,在5261窗口的右上角点击4102设置图标,在展开1653的菜单中点击“internet选项”按钮: 2、在打开的窗口中点击顶部导航条上的“安全”按钮: 3、在安全界面中点击下方的“自定义级别.”按钮打开自定义级别设置界面: 4、在自定义...
  • 现货原油如何快速入门?
    • 2024-05-26 01:53:08
    • 提问者: 未知
    学习基本的行业术语,了解其中的含义,多看盘就可以了
  • 如何快速发现主力控盘的股票?
    • 2024-05-26 20:12:34
    • 提问者: 未知
    最简单的就是最有效的,最直接的就是最成功的,这句话送给大家,有时候你觉得投资很难,选股难,其实是你把它想的太复杂了,很多朋友都容易犯 一个错误就是认为复杂额指标和方法就能让你获利,...
  • 如何快速解酒?
    • 2024-05-26 14:55:57
    • 提问者: 未知
    相似问题:如何解酒?
  • 如何快速的开发直播app(原理)
    • 2024-05-26 16:48:27
    • 提问者: 未知
    1热门直播产品:映客,斗鱼,熊猫,**,花椒等等2一个完整直播app功能1、聊天私聊、聊天室、点亮、推送、黑名单等;2、礼物普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等;3、直播列表关注、热门、最新、分类直播用户列表等;4、自己直播录制、推流、解码、播放、美颜、心跳、后台切换、主播对管理员操作、管理员对用户等;5、房间逻辑创建房间、进入房间、退出房间、关闭房间、切换房间...
  • 销售如何开发客户,如何跑市场,销售技巧和方法,如何快速开单?
    • 2024-05-26 07:12:17
    • 提问者: 未知
    好迷茫,开不了单,请高手指导!谢谢 笔者觉得楼主不妨通过看销售的书来获得此类知识。如《圈子圈套》三部曲,《大客户销售》,《互联网时代的大客户销售》,《竞争性销售》,还有如《阿里铁军...
  • 互联网金融**应如何实现快速开发?
    • 2024-05-26 11:36:01
    • 提问者: 未知
    这个涉及的内容很多,首先需要将传统金融进行互联网化,可以开发一个app,将金融与需求对接,呈现在ap
  • 绝地求生新手如何快速入门?
    • 2024-05-26 04:29:09
    • 提问者: 未知
    6.游戏有固定的刷车点,我附图在下面。7.军事基地枪法和意识差的不要去,修罗场。8.萌新要么落地之后避开主城,要么跳主城,不然城里...能量饮料(红牛),增加40点buff条。...
  • 如何快速查询文件的md5值
    • 2024-05-26 11:55:14
    • 提问者: 未知
    1使用好压查询文件的md5值一共有三种操作方法,下面分别进行介绍和说明。2第一种是通过右键点击。在想要查询的文件上点击右键,在右键菜单中找到好压的菜单选项,在“其他压缩命令“中点击“计算md5值”。3点击之后会出现文件的md5值校验窗口,可以查看到文件的详细信息。4第二种方法是在好压的主界面中查看,打开好压的主界面,在最上面的标题栏上的“工具箱”中点击“md5校验”。5点击之后就会出现选中文件的m...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。