Delphi 对象链接与嵌入(二)

2008-02-23 07:16:33来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

8.3.2.2 初始化OLE包容器部件 

  为了使OLE包容器部件包含OLE对象,必须对部件进行初始化。 初始化主要是定义部件的OLE类。如果定义了OLE文件和OLE项目,初始化完成后,OLE 应用程序部件将包含OLE对象。

  调用InsertOLEObjetDlg函数可在其参数PInitInfo获得关于OLE对象初始化的信息时,把它传递给OLE包容器部件的PInitInfo属性,OLE包容部件的ObjClass,ObjDoc,ObjItem属性将被自动定义。

  初始化完成后,OLE对象被击活。OLE服务器将获得控制,用户可通过OLE服务器对OLE对象进行编辑。当程序冻结OLE对象,OLE包容器部件将包含一幅图像或位图代表OLE对象。定义OLE包容器部件的AutoActive属性可重新激活OLE对象,缺省情况下,双击OLE包容器部件可击活OLE对象。

  例程中初始OLE对象的代码如下:  

procedure TOLEObjectForm.InitializeOLEObject(Info: Pointer);

begin

OLEContainer.PInitInfo := Info;

ReleaseOLEInitInfo(Info)

end;

  该过程先将初始化指针传给OLE包容器部件的PInitInfo属性,而后释放其内存空间。

  当用户单击例程中的“编辑 | 插入”菜单项,将弹出插入对象对话框,选择对象类型后, OLE对象被激活,该过程的代码如下: 

  procedure TOLEObjectForm.InsertObject1Click(Sender: TObject);

var

Info: Pointer;

begin

if InsertOLEObjectDlg(OLEFrameForm, 0, Info) then

InitializeOLEObject(Info);

end;

8.3.3 冻结OLE对象 

  如果OLE对象是OLE 1.0服务器创建,对象将在OLE服务器中被击活,焦点和控制移到OLE服务器中。要冻结一个由OLE 1.0创建的对象选择"File | Exit"菜单项。

  如果OLE 2.0服务器支持本地激活,激活OLE对象后OLE服务器将进行菜单融合,并转换工具条和状态条。要冻结对象,只需在应用程序窗体中异于OLE包容器部件的任何地方单击鼠

标键即可。

  另一种冻结对象的方法是把OLE包容器部件的Active属性设置成假值。在例程中,“对象|冻结”菜单项实现冻结功能。代码如下: 

  procedure TOLEObjectForm.Deactivate1Click(Sender: TObject);

begin

OLEContainer.Active := False

end; 

8.3.4 粘贴OLE对象 

  一些OLE服务器允许用户把OLE对象复制到剪贴板,如果一个OLE对象复制到剪贴板上,OLE应用程序可通过初始化OLE包容器部件来粘贴OLE对象。 

8.3.4.1 粘贴对话框

OLE对象粘贴到OLE包容器部件,要使用粘贴对话框,Delphi 中没有粘贴对话框部件,但可用PasteSpecialDlg函数显示粘贴对话框。

  PasteSpecialDlg 函数声明如下: 

   function PasteSpecialDlg(Form :TForm;Const First:arrang; HelpConcert: THelpCOntext;var Forrmat : Word; var Hardle : THanlle var PInitInfo Point ) : Boolean;  

PasteSpecialDlg参数定义如下:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi自定义部件开发(六)

下一篇:Delphi 数据浏览部件的应用及编程(一)