VCL概述

来自RAD Studio
跳转到:航行,搜索

转到VCL公司

本节介绍:

VCL架构

VCL是Visual Component Library的缩写,是一组用Delphi语言快速开发Windows应用程序的可视化组件。VCL包含各种可视化、非可视化和实用程序类,用于Windows应用程序构建、web应用程序、数据库应用程序和控制台应用程序等任务。所有类都是TObject的后代。TObject引入了实现基本行为(如构造、销毁和消息处理)的方法。

VCL组件

组件是从类TComponent派生的组件库的子集。您可以将组件放置在窗体或数据模块上,并在设计时对其进行操作。使用对象检查器,无需编写代码即可指定属性值。大多数组件要么是可视的,要么是非可视的,这取决于它们在运行时是否可见。一些组件显示在组件面板.

可视化组件

可视化组件(如TForm和TSpeedButton)称为控件,是TControl的派生。控件在GUI应用程序中使用,并在运行时显示给用户。TControl提供了一些属性,用于指定控件的可视属性,例如其高度和宽度。

非可视组件

非可视组件用于各种任务。例如,如果您正在编写连接到数据库的应用程序,则可以在窗体上放置TDataSource组件,以连接控件和控件使用的数据集。此连接对用户不可见,因此TDataSource是非可视的。在设计时,非可视组件由图标表示。这允许您像操作可视控件一样操作它们的属性和事件。

其他VCL类

非组件类(即从TObject派生而来但不是TComponent的类)也用于各种任务。通常,这些类用于访问系统对象(例如文件或剪贴板)或临时任务(例如在列表中存储数据)。您不能在设计时创建这些类的实例,尽管它们有时是由您在表单设计器.

使用组件

IDE中提供了许多组件组件面板。可以从中选择组件组件面板并将它们放在表单或数据模块上。通过在窗体上排列按钮和列表框等可视组件来设计应用程序的用户界面。还可以在窗体或数据模块上放置非可视组件,如数据访问组件。起初,Delphi的组件看起来和其他类一样。但Delphi中的组件与许多程序员使用的标准类层次结构之间存在差异。一些区别是:

  • 所有Delphi组件都是TComponent的后代。
  • 组件通常按原样使用。它们通过其属性进行更改,而不是作为基类进行子类化以添加或更改功能。当一个组件被继承时,通常是向现有的事件处理成员函数添加特定的代码。
  • 组件只能在堆上分配,而不能在堆栈上分配。
  • 组件的属性包含运行时类型信息。
  • 组件可以添加到组件面板在IDE中,并在窗体上进行操作。

组件通常实现比标准类中更好的封装。例如,考虑一个包含按钮的对话框。在使用VCL组件开发的Windows程序中,当用户单击按钮时,系统会生成一个WM_按钮向下消息。程序必须捕获此消息(通常在switch语句、消息映射或响应表中),并将其发送到将执行以响应消息的例程。大多数Windows消息(VCL应用程序)由Delphi组件处理。当您想要响应消息或系统事件时,只需要提供事件处理程序。

使用事件

几乎您编写的所有代码都是直接或间接执行以响应事件的。事件是一种特殊的属性,表示运行时事件,通常是用户操作。直接响应事件的代码称为事件处理程序,是一个Delphi过程。

这个事件第页,共页对象检查器显示为给定组件定义的所有事件。双击中的事件对象检查器生成一个骨架事件处理过程,您可以在其中填充代码以响应该事件。并非所有组件都定义了事件。

某些组件具有默认事件,这是组件最常用的处理事件。例如,按钮的默认事件是OnClick(点击)。双击中包含默认事件的组件表单设计器将为默认事件生成骨架事件处理过程。

您可以通过编写响应多个事件的事件处理程序来重用代码。例如,许多应用程序提供相当于下拉菜单命令的速度按钮。当按钮执行与菜单命令相同的操作时,可以编写单个事件处理程序,然后通过在对象检查器对于您想要响应的两个事件。

这是重用事件处理程序的最简单方法。然而,动作列表和VCL中的动作带为集中组织响应用户命令的代码提供了强大的工具。

设置组件属性

要在设计时设置发布的属性,可以使用对象检查器在某些情况下,还有属性编辑器。要在运行时设置属性,请在应用程序源代码中指定其值。

在设计时选择窗体上的组件时对象检查器显示其已发布的属性,并在适当时允许您对其进行编辑。

当选择多个组件时对象检查器显示所有属性-除姓名-由选定组件共享的。如果选定组件之间共享特性的值不同,则对象检查器显示默认值或所选第一个组件的值。更改共享特性时,更改将应用于所有选定组件。

对象检查器自动更改相应的源代码。此外,对源代码的更改(例如重命名窗体类声明中的事件处理程序方法)会立即反映在对象检查器.

另请参见