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

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

2022-06-13   來源: Delphi編程 

   在應用程序中釋放OLE對象

  當一個對象釋放到一個窗體該窗體發生OnDragDrop 事件該對象定義為TDragDropEvent方法中的Source參數而TDragDropEvent 方法是用來處理OnDragDrop事件 如果Source 是一個OLE 對象 那麼它是TOLEDropNotify 對象的派生類型 TOLEDropNotify對象有一個與OLE包容器部件PInitInfo屬性相對應的PIniInfo屬性 如果一個OLE對象被釋放PInitInfo指向OLE對象的初始化信息結構要實現釋放功能只需將TOLEDropNotify的PInitInfo屬性賦給OLE包容器部件的PInitInfo屬性

  以下為處理OnDragDrop事件的代碼

  procedure TOLEFrameFormFormDragDrop(Sender Source: TObject; X

  Y: Integer)

  var

  NewChild: TOLEObjectForm;

  begin

  if Source is TOLEDropNotify then

  begin

  NewChild := CreateChild;

  with Source as TOLEDropNotify do

  NewChildOLEContainerPInitInfo := PInitInfo

  end

  end;

  注意不要用ReleaseOLEInitInfo釋放分配給PInitInfo屬性的內存Delphi自動釋放這塊內存

   文件中的OLE對象

  在OLE應用程序中要保存對OLE對象的修改需將對象數據保存在文件中 如果對象是鏈接的數據Delphi將自動的保存在源文件中當對象被修改時文件中的數據自動修改 如果對象是嵌入的數據貯存在應用程序程序的窗體要保存對嵌入對象的修改 應用程序應把數據保存在特殊的OLE文件中如果要對已存文件的對象進行編輯應用程序必須從文件中裝入OLE對象

  OLE包容器部件的SaveToFile方法可保存對象

  OleCntainerSaveToFile(C: \SALEsOLE

  OLE包容器部件的loadFromFile方法可把文件中的對象裝入OLE包容器部件

  OleContainerloadFromFile(C:\SALEsOLE

  本章例程使用了保存對話框和打開對話框來實現運行狀態的對象保存和對象裝入

  在OLEObjectForm窗體加入保存對話框部件和打開對話框部件其主要屬性如表:

  表 保存對話框的屬性及取值

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

  屬性        值

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

  Name SaveAsDialog

  DefaultExit ole

  FileName OLE

  Filter OLE files (*OLE)|*OLE

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

  表 打開對話框的屬性及取值

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

  屬性        取值

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

  Name OpenDialog

  DefaultExit ole

  FileName OLE

  Filter OLE files (*OLE)|*OLE

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

  用戶單擊文件|保存菜單項實現OLE對象的保存代碼如下

  procedure TOLEObjectFormSaveAsClick(Sender: TObject)

  begin

  if SaveAsDialogExecute then

  OLEContainerSaveToFile(SaveAsDialogFilename)

  end;

  用戶單擊文件|打開菜單項實現對象文件裝入

  procedure TOLEFrameFormOpenClick(Sender: TObject)

  var

  NewChild: TOLEObjectForm;

  begin

  f OpenDialogExecute then

  begin

  NewChild := CreateChild;

  NewChildOLEContainerLoadFromFile(OpenDialogFileName)

  end

  end;

   OLE自動化

  OLE自動化是Windows應用程序操縱另一個程序的一種機制OLE 提供了一種方法來集成應用程序這就是應用程序之間的命令操作

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25215.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.