第一章 回到从前
VCL的设计目标是为了帮助windows开发人员简化开发流程,提供组件和面向对象的方式进行软件开发的工作。
第二章 Borland VCL Framework的诞生
由于Borland有了从OWL学习到的经验和教训,以及当时Microsoft VBX组件架构过于复杂和不易扩充的问题,因此Chuck在VCL Framework设计之初便设定了下面数个目标:
使用单一继承架构以避免陷入c++多重继承的问题,同时这也有助于简化Delphi编译器的开发工作
VCL Framework 必须不限于16位或是32位平台
VCL Framework 必须提供开发的组件架构,以允许程序员自定义组件
VCL Framework 必须进化成在可设计时期提供功能的 Framework
VCL Framework必须使用PME(Property-Event-Method)模型
VCL Framework必须使用面向对象技术来设计和实现
VCL Framework必须完善地封装和分派窗口消息
第三章 面向对象程序语言和Framework
有了TComponent作为组件的基础父类之后,VCL控件类可以直接从TComponent类继承下来吗?这是一个非常关键的问题,因为这牵涉到Framework架构设计的问题。让我们讨论一下,也让我们先脱离Borland工程师的想法而思考一下。
1. 如果让VCL控件类直接从TComponent继承下来,那么由于VCL Framework在设计之初就是封装Windows API以及Windows的对象,因此如果我们声明一个TWinComponent类从TComponent继承下来:
TWinComponent = class( TComponent )
....
end;
接着再声明各种VCL控件类从TWinComponet继承下来: