Welcome

首页 / 软件开发 / Delphi / 第十九章-Delphi自定义部件开发(四)(1)

第十九章-Delphi自定义部件开发(四)(1)2007-05-0719.3.2 创建图形部件

图形控制是一类简单的部件。因为纯图形部件从不需要得到键盘焦点,所以它没有也不要窗口句柄。包含图形控制的应用程序用户仍然可以用鼠标操作控制,但没有键盘界面。

在本例中提供的图形部件是TShape。Shape部件位于Component Palette的Additional页。本例中的Shape部件有所不同,因此称其为TSampleShape。

创建图形部件需要下列三个步骤:

● 创建和注册部件

● 公布(publishing)继承的属性

● 增加图形功能

19.3.2.1 创建和注册部件

每个部件的创建都从相同的方式开始,在本例中如下:

● 建立名为Shapes的部件单元

● 从TGraphicControl 继承,将新部件称为TSampleShape

● 在Component Palette的Samples页上注册TSampleShape

unit Shapes

intertace

use SysUtils, WinTypes, WinProcs, Messages, Classes,

Graphics,Controls,Forms;

type

TSampleShape=class(TGraphicControl)

end;

implementation

procedure Register;

begin

RegisterComponents("Samples",[TSampleShape]);

end;

end.

19.3.2.2 公布继承的属性

一旦决定了部件类型,就能决定在父类的protected部分声明哪些属性和事件能为用户可见。TGraphicControl已经公布了所有作为图形控制的属性,因此,只需公布响应鼠标和拖放事件的属性。

type

TSampleShape=class(TGraphicControl)

published

property DragCursor;

property DragMode;

property OnDragDrop;

property OnDragOver;

property ONEndDrag;

property OnMouseDown;

property OnMouseMove;

property OnMouseup;

end;

这样,该Shape控制具有通过鼠标和拖放与用户交互的能力。

19.3.2.3 .增加图形能力

一旦你声明了图形部件并公布了继承的属性,就可以给部件增加图形功能。这时需要知道两点:

● 决定画什么

● 怎样画部件图形

在Shape控制的例子中,需要增加一些能使用户在设计时改变形状的属性。