如目前所知道的,Delphi的大部分的功能是组件赋予的。使用Form Designer,可以把组件安放在窗体上,改变其设计阶段属性。在多数情况下所要做的就是这些。如有必要,也可以在运行阶段操作组件,改变其属性,调用其使用方式。此外,每个组件都是对应于一定的事件设计的。
接下来的这几讲中,我们会学到经常用到的的组件,由此学到代表那些组件的可视化组件库(VCL)类。在学习的同时,我们要随时去实践去测试。
我们先来解释下VCL组件(VCL component)和窗口控件(Windows control)之间的区别。
- 窗口控件(Windows control)包括了编辑控件、列表框、组合框、标签以及按钮,还有所有Win32控件。窗口控件本身没有属性、方法和事件,而是由消息告诉控件怎么做,或由消息从控件那儿得到信息。
- VCL组件(VCL component)是封装窗口控件的类(尽管不是所有的VCL组件都封装控件)。VCL组件事实上给窗口控件增加了属性、方法和事件,使控件(controls)用起来更容易些。也就是VCL用新的方法使用窗口控件(Windows control),或者可以说所有的VCL组件(VCL component)是控件(controls),而不是所有的控件(controls)是组件(components)。VCL组件利用窗口控件将处理那些控件的工作提高到更高的水平。
在提到VCL组件(VCL component)时将使用控件(control)和组件(component),但从不叫窗口控件为组件(But I will never call a Windows control a component!)。
可视化组件
可视化组件包括的组件有Edit control、Buttons、list boxes、labels等。在Delphi应用程序中要用到的大多数组件都是可视化的。可视化组件在设计阶段尽可能地显示为程序运行时样子。
New Term
可视化组件,如其名称一样,是在设计阶段用户看得见的组件。
非可视化组件
New Term
非可视化组件时在设计阶段不能为用户所看见的组件。
非可视化组件在幕后工作,执行具体编程任务。例如系统的计时器(Timer)、数据库组件以及图像列表(Image lists)。公用对话框如OpenDialog、SaveDialog、FontDialog等都被看做非可视化组件。
在窗体上安放非可视化组件时,Delphi将显示其图标表示组件。此图标在设计阶段用于访问组件改变其属性,在运行时,图标并不出现。
接下来一讲,我们来看看组件的一些公用属性。