111.2确定组件基类 1. Delph组件结构 Tob」ect Exception TInterfacedObject TStream TPersistent TComobject TGraphic Object TGraphic TComponent TCollection TStrings 「 Application DAtasEt MEnu TControl TCommonDialog TField Most visual GRaphic Control TWin Contro|产 controis inherit 和m7 Win contro产 TScrollingwin Control CUstom Control TCustomForm TForm TActiveForm
11.1.2 确定组件基类 1.Delphi组件结构
2.几种常用的基类 (1) TWin control类 TWin Contro对象的特征 ①有窗口句柄 ②能够接受输入焦点 ③能够作为其他组件的父组件 (2) TGraphic Contro类 TGraphicControl是图形组件类,图形组件也属于 可视组件,但它与 TWin Contro有很大不同,它没有 句柄,不能获得焦点,也不能作为其他组件的父组件 这类组件的缺点是难以和用户交互,其优点是节省系 统资源,而且有较快的图形绘制速度
2.几种常用的基类 (1)TWinControl类 TWinControl对象的特征 : ①有窗口句柄 ②能够接受输入焦点 ③能够作为其他组件的父组件 (2)TGraphicControl类 TGraphicControl是图形组件类,图形组件也属于 可视组件,但它与TWinControl有很大不同,它没有 句柄,不能获得焦点,也不能作为其他组件的父组件。 这类组件的缺点是难以和用户交互,其优点是节省系 统资源,而且有较快的图形绘制速度
(3) CUstom Control类 常用的可视组件一般都从以 TCusto开头的类派生, 实际上在 CUstom类中已经实现了组件的属性、方法 和事件,只不过它们的成员都是 Protected,即对于外 部是不可见的,无法被使用,而在它的派生类里才将 这些属性和方法公开。 下面我们通过开发一个实际的剪切板文字查看组件 来说明组件的开发过程。剪切板查看组件具有以下功 (1)该组件的基类是 PAnel组件,能够通过属性设置 它的标题和是否可见,组件名为“ Clip boardⅤ Viewer (2)当剪切板中存放的是文本信息时,且当文本发 生变化时,将发生一个名为 Clip Change Text的事 件,该事件有一个参数Text用来传递剪切板上的数据
(3)TCustomControl类 常用的可视组件一般都从以TCustom开头的类派生, 实际上在TCustom类中已经实现了组件的属性、方法 和事件,只不过它们的成员都是Protected,即对于外 部是不可见的,无法被使用,而在它的派生类里才将 这些属性和方法公开。 下面我们通过开发一个实际的剪切板文字查看组件 来说明组件的开发过程。剪切板查看组件具有以下功 能: (1)该组件的基类是TPanel组件,能够通过属性设置 它的标题和是否可见,组件名为“ClipBoardViewer”。 (2)当剪切板中存放的是文本信息时,且当文本发 生变化时,将发生一个名为ClipBoardChangeText的事 件,该事件有一个参数Text用来传递剪切板上的数据
111.3创建组件单元 用户可以自己编写一个实现组件类功能的 组件单元,但这比较麻烦。用户也可以通过 菜单来创建新组件单元,创建的步骤如下: (1)执行【 Component】→【 New Component】菜单 命令。将会出现【新建组件】对话框。 (2)指定组件的基类。指定方法是在【 Ancestor type】 后面的列表框中选择相应的基类名,本题选择 TCustomPanel。 (3)设定组件名。在【 Class name】后面的文本框中 输入类名,本题输入的类名为“ TClipBoardViewer
11.1.3 创建组件单元 用户可以自己编写一个实现组件类功能的 组件单元,但这比较麻烦。用户也可以通过 菜单来创建新组件单元,创建的步骤如下: (1)执行【Component】→【New Component】菜单 命令。将会出现【新建组件】对话框。 (2)指定组件的基类。指定方法是在【Ancestor type】 后面的列表框中选择相应的基类名,本题选择 TCustomPanel。 (3)设定组件名。在【Class Name】后面的文本框中 输入类名,本题输入的类名为“TClipBoardViewer
(4)设定组件出现在哪一个组件页中。在 【 Palette Page】后面的列表框中可以选择一个组件页, 本题选择【 Samples】组件页,该组件注册过后将会 出现【 Samples】组件页中 (5)指定组件单元的保存位置和名称。在【Unit file name:】后的文本框中输入组件单元存放的路径 和单元文件名,单元文件名和类名相同(不包含开头 的字母T) (6)自动创建组件单元。设置完成后如图11-3所 示,此时按【OK】按钮系统将自动创建组件单元
(4)设定组件出现在哪一个组件页中。在 【Palette Page】后面的列表框中可以选择一个组件页, 本题选择【Samples】组件页,该组件注册过后将会 出现【Samples】组件页中。 (5)指定组件单元的保存位置和名称。在【Unit file name:】后的文本框中输入组件单元存放的路径 和单元文件名,单元文件名和类名相同(不包含开头 的字母T)。 (6)自动创建组件单元。设置完成后如图11-3所 示,此时按【OK】按钮系统将自动创建组件单元