熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:對象鏈接與嵌入(一)[2]

2013-11-23 17:51:13  來源: Delphi編程 

  在設計對象狀態時也可以粘貼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參數接受文本字符

[]  []  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25220.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.