快捷搜索:

第十九章-Delphi自定义部件开发(四)(2)

1. 抉择画什么

图形部件平日都具有改变外不雅的能力,图形节制的外不雅取决于其某些属性的结合,例如Gauge节制具有抉择其外形、偏向和是否图形化地显示其历程的能力。同样,Shape节制也应有抉择显示各类外形的能力.

给予Shape节制这种能力,增添名为Shape的属性。这必要下列三步:

● 声明属性类型

● 声明属性

● 编写实现措施

⑴ 声明属性类型

当声明一个用户自定义类型的属性时,必须首先声明属性类型。最通俗地用于属性的自定义类型是罗列类型。

对Shape节制来说,必要声明一个该节制能画外形的罗列,下面是罗列类型的声明:

type

TSampleShapeType=(sstRectangle, sstSquare, sstRoundRect,

sstRoundSquare, sstEllipse, sstCircle);

TSampleShape = class(TGraphicControl)

end;

这样,就可以用该类型来声明属性。

⑵ 声明属性

当声明一个属性时,平日必要声明私有域来保存属性值,然后描述读写属性值的措施。

对付Shape节制,将声明一个域保存当前外形,然后声明一个属性经由过程措施调用来读写域值。

type

TSampleShape=class(TGrahpicControl)

private

FShape: TSampleShapeType;

procedure SetShape(value: TSampleShapeType);

published

property Shape: TSampleShapeType read FShape write SetShape;

end;

现在,只剩下SetShape的实现部分了。

⑶ 编写实现措施

下面是SetShape的实现:

procedure TSampleShape.SetShape(value: TSampleShapeType);

begin

if FShape

您可能还会对下面的文章感兴趣: