免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
第八章 對象鏈接與嵌入(二)
.3.5.2 在應(yīng)用程序中釋放OLE對象 

  當(dāng)一個對象釋放到一個窗體,該窗體發(fā)生OnDragDrop 事件。該對象定義為TDragDropEvent方法中的Source參數(shù),而TDragDropEvent 方法是用來處理OnDragDrop事件”。 如果Source 是一個OLE 對象, 那么它是TOLEDropNotify 對象的派生類型。 TOLEDropNotify對象有一個與OLE包容器部件PInitInfo屬性相對應(yīng)的PIniInfo屬性。 如果一個OLE對象被釋放。PInitInfo指向OLE對象的初始化信息結(jié)構(gòu)。要實現(xiàn)釋放功能。只需將TOLEDropNotify的PInitInfo屬性賦給OLE包容器部件的PInitInfo屬性。

  以下為處理OnDragDrop事件的代碼: 

procedure TOLEFrameForm.FormDragDrop(Sender, Source: TObject; X,

Y: Integer);

var

NewChild: TOLEObjectForm;

begin

if Source is TOLEDropNotify then

begin

NewChild := CreateChild;

with Source as TOLEDropNotify do

NewChild.OLEContainer.PInitInfo := PInitInfo

end

end; 

注意不要用ReleaseOLEInitInfo釋放分配給PInitInfo屬性的內(nèi)存。Delphi自動釋放這塊內(nèi)存?!?/p>

8.3.6 文件中的OLE對象 

  在OLE應(yīng)用程序中,要保存對OLE對象的修改,需將對象數(shù)據(jù)保存在文件中。 如果對象是鏈接的數(shù)據(jù),Delphi將自動的保存在源文件中。當(dāng)對象被修改時,文件中的數(shù)據(jù)自動修改。 如果對象是嵌入的,數(shù)據(jù)貯存在應(yīng)用程序程序的窗體。要保存對嵌入對象的修改, 應(yīng)用程序應(yīng)把數(shù)據(jù)保存在特殊的OLE文件中。如果要對已存文件的對象進(jìn)行編輯,應(yīng)用程序必須從文件中裝入OLE對象。

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

  OleCntainer1.SaveToFile('C: \SALEs.OLE'); 

  OLE包容器部件的loadFromFile方法可把文件中的對象裝入OLE包容器部件?!?/p>

  OleContainer1.loadFromFile('C:\SALEs.OLE')

  本章例程使用了保存對話框和打開對話框來實現(xiàn)運行狀態(tài)的對象保存和對象裝入。

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

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

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

 屬性        值

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

  Name SaveAsDialog

DefaultExit ole

FileName .OLE

Filter OLE files (*.OLE)|*.OLE

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

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

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

  屬性        取值

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

  Name OpenDialog

DefaultExit ole

FileName .OLE

Filter OLE files (*.OLE)|*.OLE

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

  用戶單擊“文件|保存”菜單項實現(xiàn)OLE對象的保存。代碼如下: 

procedure TOLEObjectForm.SaveAs1Click(Sender: TObject);

begin

if SaveAsDialog.Execute then

OLEContainer.SaveToFile(SaveAsDialog.Filename)

end; 

用戶單擊“文件|打開”菜單項實現(xiàn)對象文件裝入: 

procedure TOLEFrameForm.Open1Click(Sender: TObject);

var

NewChild: TOLEObjectForm;

begin

f OpenDialog.Execute then

begin

NewChild := CreateChild;

NewChild.OLEContainer.LoadFromFile(OpenDialog.FileName)

end

end;

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
第一章 Delphi快速入門(三)
VS2010開發(fā)MFC ActiveX,攝像頭拍照上傳Webservice(1)
EXCEL 教你VBA編程快速入門
QWidget、QMainWindow、QDialog區(qū)別
VB編程規(guī)約 - 編程,入門,菜鳥
vb控件大全,vb控件屬性大全,vb控件詳解(2)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服