
苛评VCL
文章平均质量分 79
韩小明
刚刚当上父亲的男人
展开
-
苛评VCL: 臃肿的Windows控件
写这一篇还是顶着很大的压力的。相信又有不少人要瞧不过去了。不过本着讲讲设计,无所谓好和坏,只有较好和较坏的差别。我只是从我的角度,尽量去解释为什么不赞同VCL中的设计而已。我们知道VCL封装了Windows的标准控件。这些控件包括:Edit、ListBox、ComoBox。还有一些Win32控件,包括ListView、TreeView等等控件。所有这些,在VCL中定义为TWinContro原创 2007-02-06 00:03:00 · 5199 阅读 · 11 评论 -
苛评VCL: 穿不透的类型
虽然遭遇到很多人的批评,但还是最终坚持下来。在这个系列中,主要是针对平时使用VCL的过程中,感觉Delphi没有处理好的地方。偶尔能提出一些自己的看法,权当谈资。更重要地是,我们可以借此学习到一些思想。Delphi比起其他语言,有一个非常明显的特点,那就是类引用。典型的声明就是:TComponentClass = class of TComponent;可不要小看这个简单的声明,他可以原创 2007-02-08 00:14:00 · 4073 阅读 · 9 评论 -
苛评VCL: 孤独的Application
由于每次都可能有人是单独阅读这个系列的文章。我想重申一下我的苛评VCL的意义。不在于说VCL的不好,而是重点将发现到一些问题暴露出来,以此来说明我认为VCL原来处理不合适的地方。这永远是一个设计问题,而不是技巧问题。中间难免有争议。不过请大家将争议的目标锁定在设计本身。毕竟,针对特定情况的争议才是有意义的。说起Application,稍微知道Delphi的人都知道。我们最常使用的Applica原创 2007-02-07 07:37:00 · 5759 阅读 · 10 评论 -
苛评VCL: Amingoo的留言
这些言语是Amingoo先生留下的非常珍贵的评价,对我也是一个学习的提升。为了让更多的人看到这个评论,特意将它作为《苛评VCL》系列文章的最后一篇发出,和大家一起分享。希望Amingoo不要见怪。以下言语都来自Amingoo先生:1. 这个问题不是所谓的类型问题,也不应该是在DLL内去解决的问题。如同BuilderChen所说,不认当把一个特定的OOP实现框架暴露在DLL的接口层,这样会使原创 2007-02-09 23:29:00 · 2467 阅读 · 0 评论 -
苛评VCL: 接口与TObject
在李维的《inside VCL》中详细描述了VCL中TObject的地位。是的Borland的工程师们有心将Delphi语言做成pure language。所以你几乎可以看到TObject的所有pure pascal的实现。更重要的,你应该会发现。Delphi将代码的所有运行机制都暴露在我们面前。这也就是Delphi的TObject和C++中的Object以及C#的Object有很大不同的地方原创 2007-02-02 00:39:00 · 8765 阅读 · 30 评论 -
苛评VCL: 失望的TMenu
TMenu是什么?他是VCL中封装的TMainMenu和TPopupMenu的基类。与其说对TMenu失望,其实是对VCL中对TMainMenu和TPopupMenu的失望。为什么呢?这基本上还得归咎于微软自己。微软在推出Windows的同时,却坚决的在推Office系列产品。而且Office的更新速度和Windows几乎一样快。更重要的是,Office系列产品的界面风格,特别是菜单,和标准W原创 2007-02-04 01:24:00 · 3097 阅读 · 4 评论 -
苛评VCL: 混乱的TStream
为什么这么苛刻地来评论VCL的基础类设计,我已经在前一篇关于TObject的文章中讲过。今天我拿出在一次跟踪VCL代码的过程中发现的问题。在此之前,我没有任何理由会相信会存在这样的情况。TForm读取dfm文件创建窗体过程大家一定都比较清楚,其中负责读取的是Classes.pas单元中的TReader类,而它在实现的时候,会调用到如下的函数:function InternalReadC原创 2007-02-05 08:46:00 · 3932 阅读 · 7 评论 -
抓虫记之二:WSDL中消失的函数定义
还是那句老话,现象总是扑朔迷离。 这次的现象更加奇怪,在一个webservice的接口定义中,某个新定义的方法总是看不到。可是看了实现代码,确实已经公布了。这是为什么呢? 先说明一下实现环境,这个是在Delphi环境下编写WebService的。大家可能说VisualStud原创 2011-07-07 09:06:11 · 2679 阅读 · 2 评论