在设计对象状态时也可以粘贴OLE对象其步骤如下
激活服务器应用程序选择OLE包容器部件
在服务器中将数据或对象拷贝到剪切板
进入Delphi集成开发环境选择OLE包容器部件
在 Object inspector窗体中选择ObjItem属性的省略(…)按钮
在列表中选择OLE对象
选择Paste创建一个嵌入对象或选择Pastelink创建链接对象
选择OK
OLE包容器部件在此时初始化如果粘贴一个嵌入对象ObjClass属性将包含适当的值如果粘贴一链接对象ObjClassObjDocObjItem属性将全部定义OLE 应用程序部件包含代表OLE对象的图片
如果OLE服务器程序支持OLE对象的拖放功能则在设计状态从服务器中拖动对象至应用程序应用程序将创建链接对象具体步骤
激活服务器并Delphi集成开放环境中选择要链接的对象
按隹鼠标左键拖动OLE对象至设计状态的窗体
松开鼠键释放OLE对象
窗体将创建OLE应用程序并进行初始化
OLE应用程序的开发
Delphi可以在设计状态和运行状态创建OLE对象上一节介绍的是在设计状态如何创建OLE对象这一节将通过例程介绍如何在运行状态创建OLE对象粘贴对象拖动对象以及OLE 对象的文件操作我们开发的 OLEdpr是一个OLE应用程序的实例
OLE应用程序界面开发
OLEdpr采用了多文档界面父窗体有菜单工具条状态条子窗体有一个OLE包容器部件下面分别加以介绍
OLE应用程序的菜单
OLE应用程序的菜单与其它应用程序的主菜单大体一致如果应用程序中有支持本地激活的OLE 对象则要进行菜单融合查阅OLE 服务器的资料可知道服务器是否支持本地激活
OLE应用程序菜单的GroupIndex属性决定融合菜单的位置即融合菜单是更换主菜单还是插入至应用程序的主菜单中
OLE服务器将融合三组菜单EditViewHelp每组菜单分配了唯一的组索引值在OLE应用程序中任何索引值为的菜单组在菜单融合时被OLE服务器中具有相应索引值的菜 单更换在本例程中编辑菜单项在菜单融合时被服务器的Edit替换如图 要想保存应用程序中的菜单分配有异于的索引值
表 融合后的菜单
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
菜单 索引值 功能描述 来源(OLE激活时)
────────────────────────────────
文件 使用文件和退出程序 OLE应用程序
Edit 编辑OLE对象 OLE服务器
对象 操作未激活的OLE对象 OLE应用程序
View 修改OLE对象的观测方式 OLE服务器
窗体 操纵窗体 OLE应用程序
Help 访问服务器在线帮助 OLE服务器
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OLE工具条和状态条
当OLE对象被本地激活时OLE服务器将试图用自己的工具条和状态条替换OLE应用程序的如果应用程序想要本地激活 就应该在应用程序中编写相应的代码让服务器使用工具条和状态条要做到这点必须
● 设置工具条和状态条
● 在应用程序中加入状态条
通过修改面板部件的属性创建工具条和状态条
当OLE对象被本地激活时面板或其他对齐控制将与OLE服务器程序进行协调 这意味
OLE服务器可以替换OLE应用程序窗体中任何对齐控制但锁定的控制不能被替换例如
如果面板的align属性是alTopalleftalBottomalIngh时控制未锁定OLE服务器可以替换要使应用程序的工具条状态条不被替换可将locked属性设置成真值
当OLE 对象被激活OLE 服务器在状态条中显示有关信息时OLE 应用程序部件的OnStatusLineEvent事件发生一个文本字符会将从OLE服务器传至该事件句柄 OnStatusLineEvent事件句柄的MSG参数接受文本字符
[] [] [] [] []