欢迎来到天天文库
浏览记录
ID:43184196
大小:1.08 MB
页数:26页
时间:2019-10-01
《ActiveX 组件技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章ActiveX组件技术回顾组件对象模型(COM)创建ActiveX控件类ActiveX控件封装属性、方法和事件组件注册和使用2目标理解组件和组件引用编写ActiveXDLL组件理解和应用组件的调试和兼容性配置在客户端实现组件接口和事件回调编写ActiveXEXE组件设置组件的属性3组件和组件设计ActiveXOCX——公用对话框ActiveXDLL——ADO对象ActiveXEXE——Word、Excel4ActiveXDLL组件2-1ActiveXDLL的优点可在应用程序之间方便地共享代码;由于此组件位于进程内,因此可提供极佳的性能;为模块化程序设计提供了强有力的支持
2、;ActiveXDLL的缺点增加了部署应用程序的复杂性;组件和之间的依赖性导致产品的维护成本增加;5ActiveXDLL组件2-26创建ActiveXDLL组件4-17创建ActiveXDLL的方法和事件PrivatevarAsStringPublicEventAfterGreetPublicSubGreet()MsgBox"你好"&var&"!"RaiseEventAfterGreetEndSub创建ActiveXDLL组件4-28创建ActiveXDLL的属性PublicPropertyLetMyname(nameAsString)var=UCase(name)EndPr
3、opertyPublicPropertyGetMessage()Message="这是一个DLL"EndProperty创建ActiveXDLL组件4-39调用ActiveXDLL的属性和方法DimCAsNewA.BB.MyName=“YYY”CallB.GreetDebug.PrintB.Message创建ActiveXDLL组件4-410调试ActiveXDLL11客户程序与组件服务的例子12组件对象的Instancing属性PrivatePublicNotCreatableMultiUseSingleUseGlobalMultiUseGlobalSingleUse13M
4、ultiUse和SingleUse客户应用程序1客户应用程序2EXEServerProcess服务进程对象1对象2创建了单个进程来供多个客户的各个对象使用客户应用程序A客户应用程序BEXE服务器进程1EXE服务器进程2对象1对象1加载的组件的不同实例14组件兼容性设置4-115?组件兼容性设置4-2使用Implements实现接口使用接口的好处接口和面向对象多态的实现16’Server组件PublicFunctionWaitToImp(ByVallngNumberAsLong)EndFunction’ClientImplementsclsInterfacePublicFunc
5、tionclsInterface_WaitToImp(ByVallngNumberAsLong)。。。EndFunction组件兼容性设置4-317异步机制和使用接口实现异步组件兼容性设置4-418注册和引用ActiveXDLL组件19ActiveXEXE组件及特点进程外组件可独立执行,但同时提供组件对象服务使用App对象的StartMode属性远程服务组件20封装ActiveXEXE组件4-121’服务器组件PublicEventAsynEvent(ByValstrTXTAsString)PublicEventCalculateReturn(ByVallngValueAsL
6、ong)PublicPropertyLetLast(ByVallngValueAsDouble)frmEditor.lblInfo.Caption="计算结果是:"&CStr(lngValue)RaiseEventAsynEvent(CStr(lngValue))EndPropertyPublicFunctionFalseCalculate(ByVallngValueAsLong)AsLongfrmEditor.MousePointer=vbArrowHourglassRaiseEventCalculateReturn(lngValue)frmEditor.MousePoin
7、ter=vbDefaultEndFunction封装ActiveXEXE组件4-222’客户程序PrivateSubcmdCalculate_Click()CallEditor.FalseCalculate(CLng(txtNum.Text))EndSubPrivateSubEditor_CalculateReturn(ByVallngValueAsLong)…’此处为真正的计算Editor.Last=g_lngValueEndSubPrivateSubEditor_AsynEvent(ByValstr
此文档下载收益归作者所有