您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于VB的桌面系统开发方案_T5
1基于VB的桌面系统开发方案组件对象模型2课题目标理解并能解释为什么需要COM解释OLE和COM的关系COM的优点解释不同OLE服务器类型间的区别掌握OLE控件的使用掌握类型库的使用3回顾在VisualBasic程序中处理错误发生在VisualBasic程序中的三种错误类型:运行、语法和逻辑错误错误处理技术–立即和延迟错误处理属性、方法和事件用于生成一个类模块中的类4介绍组件对象模型(COM)–由微软定义的一个标准–允许我们通过使用其它厂商的软件功能来扩展自己的软件功能5问题的出现MicrosoftWord–字处理器软件MicrosoftExcel–电子表单MicrosoftPowerPoint–制作演示稿的软件CorelDraw–绘制繁复图形6问题的出现(续)有很多时候我们发现在一个应用程序中需要用到这个应用程序没有的功能7问题的出现(续)要绘制一张图表:–确定Y轴的精确比例。–用X轴来代表月份。–保证每个柱体之间的差别是可区别的。缺点:–如果数据发生了改变,就需要重新绘制图表。–在一个文件中可能对同一数据的一个图表采用不同的风格或者使用不同的图表来表示。8问题的出现(续)解决问题的方法:–在另外一个专门绘制图表的应用程序中产生需要的图表。–打印出该图表–在需要时把打印出的图表粘贴到打印好的文件上缺点:–我们要使用两种不同的软件,最后还要保证两种文件最后正确的和为一体–图表对应的数据的任何改变都要求重新修改图表并相应地调整文件以保证新绘的图表能正确地粘贴到文件上9问题的出现(续)Word,Excel,PowerPoint和Access都需要提供图表绘制功能给每一个软件都加入图表绘制能力并不是一个好主意,因为:–所有的四个软件都是微软产品重复的功能就意味着重复的代码。–浪费硬盘空间–如果微软开发新的需要这个功能的软件,还需要在这个新的软件中加入这些代码10解决办法把许多应用程序都共有的功能独立出来,创建一个新的应用程序来实现在需要某个功能而应用程序没有提供时,只需要调用提供那个功能的应用程序就可以了可以实现上述解决方案的标准,称为组件对象模型(COM)11组件对象模型定义了一些规则,要求应用程序与其它应用程序之间按照一个统一的行为进行交互调用其它应用程序的应用程序和被调用的应用程序都必须遵循COM中的规则指定的规则具有普遍性而不是特殊的它是一个开放的,可扩展的软件互操作标准可以让我们象使用自己应用程序的功能一样使用别的程序实现相应功能12对象的连接和嵌入对一个调用其它应用程序的程序来说,这个调用者需要知道被调用的应用程序的位置组件对象模型(COM)–要求可以为其它应用程序提供服务的应用程序都要在一个地方进行注册–是一个蓝皮书或者说是一个指导性的规则–是理论上的,而不是一个实现了的东西13对象的连接和嵌入(续)对象连接和嵌入(OLE)就是COM的一个实现OLE中就对此进行了实现,在Windows环境中用来进行注册的地方就是Windows注册表14创建一个新文档15激活MicrosoftGraph16对象对话框17MicrosoftGraph18菜单项–Word文档19数据表单20选中图表类型子菜单21图表类型对话框22恢复后的Word界面23编辑图表24需要注意的几点MicrosoftWord是调用者,同时也是客户端MicrosoftGraph是服务器端或者称为对象应用程序MicrosoftGraph创建的图表在Word文档中称为对象想要修改图表还需要使用MicrosoftGraph25注册一个服务器程序文件system.dat–所有运行Windows操作系统的计算机中都存在–是Windows注册表–在安装一个服务器端应用程序时,它会在注册表中写入它的名称和位置–对客户端应用程序来说,需要做的就是读取注册表并查看哪些服务器端应用程序可以供给它使用–只有服务器端应用程序需要注册–服务器端程序在它们被客户端程序调用之前都必须向注册表注册26关于对象嵌入式对象–MicrosoftGraph在Word文档中创建的图表和文档保存在一起连接对象–和文档分离开单独存储的对象–文档中只保存对象的一个引用,对象本身被存储在一个单独的文件中–对象可以独立于文档进行操作。–下次打开包含有指向这个对象引用的文档时,对象的修改也相应的反映到文档中27连接和嵌入的对比嵌入方式创建的文件比较大,因为它包含有对象的拷贝连接方式创建的文件比较小连接方式常用于对象要跟随创建它的数据的变化而变化的情况28COM的优点可以节省开发时间提供了软件的重用让我们在所有可获取的软件中选取最好的来使用29COM服务器端的类型简单服务器端程序–只能被客户端程序激活,但是不能让客户端程序访问它自定义的变量和方法自动服务器端程序–允许客户端程序访问对象的某些方法和属性ActiveX–微软给可由客户端编程的组件取的名字–自动服务器端程序可以让用户通过可访问的方法和属性对服务器端对象进行操作,但是它不能让我们在对象发生某一特定的事件时编写程序进行处理–ActiveX是一个用户界面组件如按钮、列标框等,它拥有客户端程序可以访问的方法、属性和事件30类型库问题:对自动服务器端程序和ActiveX组件,客户端程序需要知道哪些方法、属性和事件是可以访问的解决:类型库类型库的位置在服务器端程序注册时就和其它信息一起写入到注册表中客户端程序读取注册表,获取到类型库的位置然后读取类型库来决定对象可访问的属性、方法和事件31OLE控件在程序中使用连接或嵌入对象32使用OLE控件33插入对象对话框显示注册过的对象。34插入对象属性“Class”保存一个标识着和OLE控件相关的对象类型的字符串35运行状态下的应用程序36服务器端程序的菜单37OLE控件的方法Close–关闭存在的活动的服务器端程序–关闭服务器端程序是客户端程序的责任OLE1.Close()CreateEmbed–从一个指定的文件创建一个嵌入式对象并把它和OLE相连–优点允许在应用程序中嵌入一个已存在的文件例如:OLE1.CreateEmbed(c:\try.doc)38OLE控件的方法(续)CreateLink–从指定文件创建一个链接对象并把它和一个OLE控件联系起来–优点允许在应用程序中链接一个已存在的文件例如:OLE1.CreateLink(c:\try.doc)39OLE控件的方法(续)InsertObjDlg–用来显示“插入对象”对话框,使我们可以选择要创建对象的类型–单击对话框的“确定”按钮时,创建选中类型的对象并和OLE控件联系在一起–可以让我们在任何时候使用注册的服务器端程序40OLE控件的方法(续)–在每次显示时读取注册表中的信息来获取服务器端程序列表并显示到对话框中,这样一旦有新的服务器端程序注册,就可以在列表中显示出来OLE1.InsertObjDlg41OLE控件的属性AutoActivate–决定如何激活服务器端程序–可选的值是双击、获得焦点、自动或是人工激活Class–设置或决定对象的类的名称或是对象的类型–和Word文档相关联的“OLE1”控件的class属性值为:“Word.Document.8”Object–返回在OLE控件中支持的OLE对象的引用42OLE控件的事件ObjectMove–在对象被移动时触发Update–在对象的数据发生改变时触发–当服务器端对象是活动的,并且用户对它进行了修改时发生43本课总结组件对象模型(COM)是由微软定义的一个标准,它允许我们通过使用其它软件来扩展自己软件的功能OLE是一种解决方案,允许我们在自己的程序中使用其它程序嵌入—对象是容器的一部分链接—容器中包含一个到对象的链接,对象自己独立存在44本课总结(续)不同类型的服务器应用程序–简单服务器只能被客户端程序激活,但是不能让客户端程序访问它自定义的变量和方法–自动服务器应用程序允许客户端程序访问对象的某些方法和属性–ActiveX是微软赋给可由客户端编程的组件名字,为了让组件能够处理事件,所以引入了ActiveX
本文标题:基于VB的桌面系统开发方案_T5
链接地址:https://www.777doc.com/doc-2572629 .html