- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安网站维护基地 来源:黑客防线网安网站维护基地 浏览次数:0 |
8.2.2 OLE对象创建的步骤:
1.在窗体中增加OLE包容器部件;
2.在Object inspector中单击ObjClass或ObjDoc属性的省略按钮,将出现插入对象对话框;
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过程释放初始化信息所占用的内存。
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |