CnPack Forum


 
Subject: Delphi面向对象学习随笔九:后记
bahamut8348
灌水司司长
Rank: 6Rank: 6


UID 4743
Digest Posts 14
Credits 337
Posts 79
点点分 337
Reading Access 10
Registered 2007-1-18
Status Offline
Post at 2008-7-2 11:32  Profile | Blog | P.M. 
Delphi面向对象学习随笔九:后记

最后一篇了,呵呵!其实通过写这几篇笔记,也发现了我自己知识欠缺的部分。当然也通过各位高手的提点,让我把以前学习过的东西来了一次“体检”。
    当然,错误也有,但是改了就还是好同志嘛,呵呵^_^

    随便介绍一下Delphi中的几个比较常用的类吧:

  TObject:
    VCL中所有类的根类,即是说:VCL中所有的类/组件/控件都是从TObject中继承而来。TObject类中定义了基本的构造方法和析构方法。

  TPersistent:
    继承于TObject,按字典中的意思是“持久类”(姑且这样叫它吧,因为我一直就是这样叫这个类的-_-|)。该类在VCL中的地位不亚于TObject,VCL中很大一部分类都是继承于这个类的。TPersistent类实现了published域对象的RTTI功能,也就是说:该类以及它的派生类中定义在published中的属性、方法和事件可以显示在Object Inspector窗口中,也可以把属性的值保存到dfm文件中。当然,这些RTTI的特性,都是由编译指令{$M+}指定的。如果是直接从TObject继承的子类,加上这个编译指令,同样有RTTI功能。另外TPersistent还提供了持久类对象实例之间互相Assign的机制,子类可实现它。

  TComponent:
    所有组件的基类,由该类或它的派生类所派生的新类是可以注册到Delphi的组件面板中的。也就是说,当你要开发一个新的组件时,该类将是你所能选择的最基础的类。

  TControl:
    可视组件(一般我们说的控件也就是指TControl类或它的派生类)。

  TWinControl:
    标准Windows控件,该类以及派生类都有一个非常重要的属性THandle。也就意味着,继承于这个类或派生类的控件可以接受消息(SendMessage()或PostMessage()发送,当然还有系统发送的)。当然,非可视组件(TComponent的派生类)也有具有THandle属性的。比如说TTimer。

  TCustomControl:
    继承于TWinControl,添加了画布属性Canvas和Paint方法。那么,当我们考虑写一个自绘的并且有句柄的控件的话,考虑用这个类或许可以减少我们很多工作量。

  TGraphicControl:
    自绘控件,从TControl类继承,与TWinControl类不同的是,它没有句柄。

  TInterfacedObject:
    前面说过,这个类应该是我们选择实现接口类的根类,因为它已经为我们实现了IInterface接口中的方法。当然如果你想自己实现IInterface中的方法的话,你也可以选择从TObject类中继承。


    大概就这样吧,相当的简单。其中的奥秘其实可以从VCL的代码中挖掘。

    我每一次看VCL的代码,都会忍不住佩服一次Delphi开发小组的成员。VCL的代码真的是太优秀了,虽然也有BUG,呵呵。

题外话:
    这段时间在网上翻帖子,看到有朋友为了“到底是OOP好还是GP好”而大打口水仗;也有朋友为了“使用属性(property)好还是使用Getxxx和Setxxx这样的方法好”而破口大骂。
    就我看来:任何东西,只要他存在,那么就是最大的道理,没有必要争论这些。有这些时间还不如多去学习点新的东西更好。

鸣谢:
    首先要谢谢刘啸,如果没有刘啸为我的笔记润色润色的话,我想会有很多会有歧义的地方。
    也要感谢刘啸、沈兄和周劲羽的批评和补充,有了他们的批评,才使我又学习到了很多东西。

    当然,也要感谢正在看这个笔记的各位,希望各位可以给我指出不正确的地方。多交流才会有提高嘛^_^

    最后:希望我写的东西没有误人子弟。

阿弥陀佛……




做人要厚道,看帖要回贴
Top
lixupeng
普通灌水员
Rank: 2



UID 33687
Digest Posts 0
Credits 66
Posts 31
点点分 66
Reading Access 10
Registered 2007-12-11
Status Offline
Post at 2008-7-3 00:10  Profile | Blog | P.M. 
人气不行啊
Top
hbxfwjww (流星无语)
普通灌水员
Rank: 2



UID 14409
Digest Posts 0
Credits 87
Posts 36
点点分 87
Reading Access 10
Registered 2007-5-18
Status Offline
Post at 2008-7-3 09:48  Profile | Blog | P.M.  | QQ
顶一下表示支持!




我就是我!
Top
冰力不足
新警察
Rank: 1



UID 42271
Digest Posts 0
Credits 2
Posts 1
点点分 2
Reading Access 10
Registered 2009-4-29
Status Offline
Post at 2009-5-28 00:47  Profile | Blog | P.M. 
谢谢! 全部收藏, 讲得实在太好了!
Top
adulti
新警察
Rank: 1



UID 42836
Digest Posts 0
Credits 2
Posts 1
点点分 2
Reading Access 10
Registered 2009-7-16
Status Offline
Post at 2009-7-16 22:36  Profile | Blog | P.M. 
谢谢分享

谢谢分享,楼主如果能把格式弄一下,看起来更舒服了。




i love ugg boots
Top
 




All times are GMT++8, the time now is 2024-3-28 17:17

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.007638 second(s), 8 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP