DELPHI基础教程对象链接与嵌入篇_Delphi_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

DELPHI基础教程对象链接与嵌入篇

作者:黑客防线网安网站维护基地 来源:黑客防线网安网站维护基地 浏览次数:0

黑客防线网安网讯:对象链接和嵌入(Object Linking and Embeding)是一组服务功能,它提供了一种用源于不同应用程序的信息创建复合文档的强有力方法。 对象可以是几乎所有的信息类型,如文字、位图、矢量图形,甚至于声音注解和录像剪辑

8.2.2 OLE对象创建的步骤: 

  1.在窗体中增加OLE包容器部件;

  2.Object inspector中单击ObjClassObjDoc属性的省略按钮,将出现插入对象对话框;

        3.如果要插入的OLE 对象已存储在文件中,选择“Creat From File”,而后定义该对象的文件名和路径名。如果是链接对象,则选择链接检查框。 如果是嵌入对象,选择“Creat new”,并在对象类型列表框中选择OLE对象;

  4.选择OK按钮;

  如果是创建新对象,OLE服务器将激活,则可对OLE对象进行编辑,完成编辑后关闭OLE服务器。典型的例子是单击服务器中的“File”或“File|Update”菜单。

  5.此时ObjClass属性中包含了相应的值,如果OLE对象从已存在的文件中创建或插入一

个链接对象,ObjDoc属性包含了OLE文件。

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

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

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

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

  4. Object inspector窗体中选择ObjItem属性的省略()按钮;

  5.在列表中选择OLE对象;

  6.选择“Paste"创建一个嵌入对象或选择"Pastelink"创建链接对象;

  7.选择OK

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

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

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

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

  3.松开鼠键释放OLE对象。

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

8.3 OLE应用程序的开发 

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

8.3.1 OLE应用程序界面开发 

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

8.3.1.1 OLE应用程序的菜单 

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

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

  OLE服务器,将融合三组菜单:Edit,View,Help,每组菜单分配了唯一的组索引值。在OLE应用程序中任何索引值为1,3,5的菜单组在菜单融合时被OLE服务器中具有相应索引值的菜 单更换。在本例程中,编辑菜单项在菜单融合时被服务器的"Edit"替换。如图8.3 要想保存应用程序中的菜单,分配有异于1,3,5的索引值。

8.3 融合后的菜单

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

菜单  索引值    功能描述       来源(OLE激活时)

────────────────────────────────

文件   0   使用文件和退出程序      OLE应用程序

Edit 1 编辑OLE对象         OLE服务器

对象   2 操作未激活的OLE对象     OLE应用程序

View 3 修改OLE对象的观测方式    OLE服务器

窗体  4 操纵窗体           OLE应用程序

Help 5 访问服务器在线帮助      OLE服务器

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

8.3.1.2 OLE工具条和状态条 

  当OLE对象被本地激活时,OLE服务器将试图用自己的工具条和状态条替换OLE应用程序的。如果应用程序想要本地激活, 就应该在应用程序中编写相应的代码让服务器使用工具条和状态条。要做到这点,必须:

  ● 设置工具条和状态条

  ● 在应用程序中加入状态条

   通过修改面板部件的属性创建工具条和状态条。

  当OLE对象被本地激活时,面板或其他对齐控制将与OLE服务器程序进行协调。 这意味

OLE服务器可以替换OLE应用程序窗体中任何对齐控制,但锁定的控制不能被替换。例如,

如果面板的align属性是alTop,alleft,alBottom,alIngh时,控制未锁定,OLE服务器可以替换。要使应用程序的工具条、状态条不被替换,可将locked属性设置成真值。

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

以下代码用以状态条接收OLE服务器的信息:

procedure TOLEObjectForm.OleContainerStatusLineEvent(Sender: TObject;

Msg: String);

begin

OLEFrameForm.StatusBarPanel.Caption := Msg

end; 

8.3.2 插入OLE对象  

         运行状态时进行对象链接与插入也要用到插入对话框,Delphi中没有插入对话框部件,但可调用InsertOLEObjectDlg 函数来显示对话框。 

8.3.2.1 InsertOLEObjectDlg函数声明如下: 

function InsertOleObjectDlg(Form: TForm; HelpContext: THelpContext;

var PInitInfo: Pointer): Boolean;

  其中参数Form是拥有插入对话框的窗体,一般将拥有OLE包容器部件的窗体名字传给Form.

参数Helplontext为插入对象对话框定义在线帮助,如果应用程序没有在线帮助, HelpContext的值为零,对话框中将不出现帮助按钮。

  参数PInitInfo是一个无类型指针,该指针指向一个包含初始化OLE 部件信息的内部数据结构。InsertOLEObjectDlg修改这个指针以指向一个有效的数据结构,该结构包含了对话框列表中被选择的OLE 对象初始化信息。当该指针被使用后,应调用ReleaseOLEInitInfo过程释放初始化信息所占用的内存。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-7704-1.html
网站维护教程更新时间:2012-03-02 12:53:40  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer