Delphi初学者参考(二)
作者 凌众技术
来源 互联网
浏览
发布时间 2012-01-14
Parent.HandleAllocated then if csOpaque in ControlStyle then begin //直接调用user32.Dll的GetDC DC := GetDC(Parent.Handle); Try //直接调用gdi32.Dll的IntersectClipRect IntersectClipRect(DC, Left, Top, Left + Width, Top + Height); // Parent.PaintControls调用大量的API Parent.PaintControls(DC, Self); Finally // 直接调用user32.Dll的ReleaseDC ReleaseDC(Parent.Handle, DC); end; end else begin //以下两个经过封装调用 Invalidate; Update; end; end; 可见VCL中处处都有API,我们从另外一个面来理解VCL就是:VCL就是大量封装API函数的类库,这样的结果就是使我们更容易使用API,不必关心那些烦人的API参数。 Delphi与Windwos COM服务 COM是什么东西?COM(Component Object Model),组件对象模型,它是基于Windows平台的让不同的独立对象能相互通讯的不受任何计算语言约束的软件组件模型,它定义一组API和一个二进制标准。这个定义比较抽象,首先它是一种组件模型,定义了一种组件对象规范,实现这个COM模型的对象就是COM对象。COM对象是通过接口(Interface)来实现访问的,一个COM对象可以包含一个或多个接口,这些接口构成了COM对象的功能,你可以像访问VCL对象方法一样访问COM对象的接口方法。COM对象的目的是实现资源共享,它在二进制代码级别实现了共享,所以它可以用不同的编程语言来实现,也可以由不同的编程语言来调用,这类似于DLL(其实COM的思想来源来DLL)。 VCL与COM COM是Microsoft以前极力推崇的东西,所以在Windows操作系统中无处不在,同样Delphi的VCL也有调用Windows COM服务的,最明显例子就是组件栏ADO页的所有ADO组件,如TADOQuery,它是从TCustomADODataSet继承下来的,而TCustomADODataSet的定义如下: TCustomADODataSet = class(TDataSet, IUnknown, RecordsetEventsVt) private FRecordsetObject: _Recordset; FFindCursor: _Recordset; FLookupCursor: _Recordset; FLockCursor: _Recordset; FRowset: IRowset; FAccessor: IAccessor; FRowsetFind: IRowsetFind; FHAccessor: HACCESSOR; FOleRecBufSize: Integer; … end; ADO(Microsoft ActiveX Data Objects),它是一组通过Microsoft OLE DB 提供者访问数据库的COM对象的集合。如我们研究 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 手把手教delphi:写你的dll文件(2)下一篇: Delphi中资源文件使用详解
关于Delphi初学者参考(二)的所有评论