组件所对应的类为TComponent,所有的组件都是由这个类派生来的。通常,窗体中会有文字输入、滚动条、复选框、单选框、按钮等一系列组件,通过这些直观易懂的组件,可以方便的实现多种多样的功能。在Delphi中,这些运行期间出现在窗体和对话框中的组件称为可视组件,对应TControl子类。在窗体中,不仅可以放置组件,还可以放置一些运行期间非可视的组件,对应其它的TComponent子类。这些不可视组件集中地实现了一些特殊的功能。比如,时钟控制等功能。
       组件(可视组件)可分为两类:窗体组件和图形组件。窗体组件对应TWinControl 子类,是基于系统窗体的可视组件,具有窗体句柄,可作为输入焦点并含有其它组件,例如TEdit组件;图形组件对应TGraphicControl 子类,没有窗体句柄,不可作为输入焦点,也不能含有其它组件,例如Label 组件。图形组件比窗体组件使用的资源少,尤其在组件数量比较多的情况下最好使用图形组件。
        窗体和组件的关系非常密切。从直观的角度来讲,窗体就像一个容器,其中包容了可视组件和非可视组件。从程序代码的角度来看,一个窗体对应一个源程序文件,其中定义了窗体中所有组件的对象。窗体和组件之间除了具有上述的不同点之外,还具有一些相同点。例如,从面向对象编程的角度来看,所有组件都是TComponent 类派生类的一个对象。窗体类(TForm)也是从TComponent 类派生的,所以可以将窗体看成一个特殊的组件。有些组件也具有窗体的“容器”属性,也就是在这些组件中可以放置其它组件,通常这些组件称为容器组件。例如在TLabel 组件中可以放置TEdit 组件,TLabel 组件就是一个容器组件。
       Delphi 中的所有组件是在可视组件库(Visual Component Library,缩写为VCL)中封装
的。可视组件库是Delphi 中非常重要的一部分,不仅封装了所有组件对应的类,还封装了一些通用的类。所有的这些类都是由一个基类派生出来的,也就是TObject 类。了解可视组件库对于学习组件、使用Delphi 很有帮助。