手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

Delphi 对象链接与嵌入(三)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

SetFileName;

procedure Modified : WordBool read GretModified

end; 

TMemeDoc类是MemoEdit程序的内部自动化类,因此不需要注册。外部OLE自动化控制器对它不能直接引用。如果要使外部控制器对自动化对象进行操作,则要在声明自动化对象的单元中调用Automation. ReGISterClass 进行注册。例程MemoAuto 单元定义了TMemoApp对象并进行注册。 

  unit MemoAuto

 

type

TMemoApp = Class(TAutoObject)

implementation

  procedure RegisterMemoApp

Const

AutoClassInfo : TAutoClassInfo = (

AutoClass : TMemoApp;

ProgID : MemoEdit,Application

ClassIn : '{FIFF4880 - 200D - 11CF - BDCF - D020AFOE5B81}';

Description : 'Memo Editor Application';

Instancing : acSingle Instance );

begin

Automation,RegisterClass(AutoClassInfo)

end;

inibialization

RegisterMemoApp;

end; 

自动化对象要在initialization部分中对自动化对象进行注册。 注册的信息用以唯一辨识服务器对象。把一个自动化对象加入到服务器中要用到这些信息。程序一旦注册了自动化对象,全局自动化对象将用OLE自动化API进行自动管理。

  注册后的OLE自动化对象是引用记数的,因为对象可能被多个控制器控制。当使用完一个OLE对象,调用Release方法,Release可减少引用数目,当引用数目为零时,调用Free方法释放对象。

  通常把OLE对象作为变体类型(variants)进行输出,任何OLE 对象的方法和属性必须返回一个包含OLE对象的变体类型,TAutoObject提供了一个变体类型的OLEObject属性。控制器不能直接得到服务器中的类或指针,而是引用OLE对象的OLEObject属性。

  例程MemoAuto单元的NewMemo函数就是通过引用OLEObject 属性而提供引用TMemoDoc对象的接口。 

  function TMemoApp,NewMemo : Variant;

begin

Result := MainForm,CreateMemo(' '),OleObject;

end; 

上一篇: Delphi 对象链接与嵌入(四)
下一篇: Delphi 拖放编程

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!