DELPHI基础教程:对象链接与嵌入(一)[2]

如题所述

第1个回答  2022-11-03

   在设计对象状态时也可以粘贴OLE对象 其步骤如下

   激活服务器应用程序 选择OLE包容器部件

   在服务器中 将数据或对象拷贝到剪切板

   进入Delphi集成开发环境 选择OLE包容器部件

   在 Object inspector窗体中选择ObjItem属性的省略(…)按钮

   在列表中选择OLE对象

   选择 Paste 创建一个嵌入对象或选择 Pastelink 创建链接对象

   选择OK

  OLE包容器部件在此时初始化 如果粘贴一个嵌入对象 ObjClass属性将包含适当的值 如果粘贴一链接对象 ObjClass ObjDoc ObjItem属性将全部定义 OLE 应用程序部件包含代表OLE对象的图片

  如果OLE服务器程序支持OLE对象的拖放功能 则在设计状态从服务器中拖动对象至应用程序 应用程序将创建链接对象 具体步骤

   激活服务器 并Delphi集成开放环境中选择要链接的对象

   按隹鼠标左键拖动OLE对象至设计状态的窗体

   松开鼠键释放OLE对象

  窗体将创建OLE应用程序并进行初始化

   OLE应用程序的开发

  Delphi可以在设计状态和运行状态创建OLE对象 上一节介绍的是在设计状态如何创建OLE对象 这一节将通过例程介绍如何在运行状态创建OLE对象 粘贴对象 拖动对象 以及OLE 对象的文件操作 我们开发的 OLE dpr是一个OLE应用程序的实例

   OLE应用程序界面开发

  OLE dpr采用了多文档界面 父窗体有菜单 工具条 状态条 子窗体有一个OLE包容器部件 下面分别加以介绍

   OLE应用程序的菜单

  OLE应用程序的菜单与其它应用程序的主菜单大体一致 如果应用程序中有支持本地激活的OLE 对象 则要进行菜单融合 查阅OLE 服务器的资料可知道服务器是否支持本地激活

  OLE应用程序菜单的GroupIndex属性决定融合菜单的位置 即融合菜单是更换主菜单 还是插入至应用程序的主菜单中

  OLE服务器 将融合三组菜单 Edit View Help 每组菜单分配了唯一的组索引值 在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属性是alTop alleft alBottom alIngh时 控制未锁定 OLE服务器可以替换 要使应用程序的工具条 状态条不被替换 可将locked属性设置成真值

  当OLE 对象被激活 OLE 服务器在状态条中显示有关信息时 OLE 应用程序部件的OnStatusLineEvent事件发生 一个文本字符会将从OLE服务器传至该事件句柄 OnStatusLineEvent事件句柄的MSG参数接受文本字符

lishixinzhi/Article/program/Delphi/201311/25220

相似回答