【正文】
end。 end。 。定義界面主要是為了控制器能夠引用它們。 進程內(nèi)服務(wù)器被調(diào)用時在同一地址中運行,這樣就不需要控制器進行調(diào)度,以避免處理大量的消息句柄。程序一旦注冊了自動化對象,全局自動化對象將用 OLE自動化API 進行自動管理。 TMemeDoc 類是 MemoEdit 程序的內(nèi)部自動化類,因此不需要注冊??蓪emoEdit 進行操作;如按 Creat 按鈕, MemoEdit 產(chǎn)生三個子 窗體,如圖 ,按 AddText,子窗體將出現(xiàn) This text was added through OLE Automation的字符串“ MemoEdit 包括三個單元: Mainfrom MDI 主窗體 EditFrom MDE 子窗體和自動化類 MemoAuto 應(yīng)用程序自動化對象 下面結(jié)合例程講述 OLE 自動化的基本概念及開發(fā)。 begin f then begin NewChild := CreateChild。當(dāng)對象被修改時,文件中的數(shù)據(jù)自動修改。該對象定義為TDragDropEvent 方法中的 Source 參數(shù),而 TDragDropEvent 方法是用來處理OnDragDrop 事件”。 Delphi 自動釋放這塊內(nèi)存。 begin if then () end。 現(xiàn)在介紹兩個應(yīng)用程序,其中 是多文檔界面的文本編輯器,作為 OLE 自動化服務(wù)器 , 是自動化控制器。 procedure Close。 自動化對象要在 initialization 部分中對自動化對象進行注冊。 在 Windows環(huán)境下有兩種 OLE自動化服務(wù)器,進程內(nèi)服務(wù)器和進程外服務(wù)器, Delphi 可創(chuàng)建這兩種服務(wù)器。OnLastRelease 事件可得到一個叫 ShutDown 的布爾型變量。 這是服務(wù)器內(nèi)部標(biāo)識 OLE 對象的名字,必須是個有效的面象對象 Pascal標(biāo)識符,習(xí)慣上以 T字母開頭; OLE 類命名 該名用以外部控制器創(chuàng)建對象。An instance of the MemoEdit ApplicationOLE Automation Class could not be created,Make sure that the MemoEdit application has been registered using a MemoEdit|regservermand line39。 begin Result := MainForm,CreateMemo(39。 begin for I := 1 to 3 do if not var IsEmpty(Memo[I]) then Memo[I],Insert{39。 AutoForm 的很多過程引用了 OLE 自動化對象的方法: procedure TMainForm,TileButtonClick(Sender : Tobject)。每個 ID 號與一個 OLE 類名相對應(yīng),如果其中之一被改變,應(yīng)用程序在使用時會發(fā)生錯誤。即創(chuàng)建能輸出 OLE 對象的應(yīng)用程序或動態(tài)鏈接庫。 服務(wù)器與其能輸出的對象數(shù)目的關(guān) 系稱為實例 (instancing)。 通常把 OLE 對象作為變體類型 (variants)進行輸出,任何 OLE 對象的方法和屬性必須返回一個包含 OLE 對象的變體類型, TAutoObject 提供了一個變體類型的 OLEObject 屬性。例程 MemoAuto 單元定義了 TMemoApp 對象并進行注冊。它的 automated 部分象普通類的public部分, OLE控制器可引用在這部分聲明的屬性和方法。 OLE 提供了一種方法來集成應(yīng)用程序,這就是應(yīng)用程序之間的命令操作。如果要對已存文件的對象進行編輯,應(yīng)用程序必須從文件中裝入 OLE 對象。 如果一個 OLE 對象被 釋放。 begin if Source is TOLEDropNotify then begin NewChild := CreateChild。 在 OLEObjectForm 窗體加入保存