知识大全 Delphi自定义部件开发(四)[2]

Posted

篇首语:苦心人天不负,卧薪尝胆,三千越甲可吞吴。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi自定义部件开发(四)[2]相关的知识,希望对你有一定的参考价值。

DELPHI基础教程:Delphi自定义部件开发(四)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ⑵ 声明属性

  当声明一个属性时 通常需要声明私有域来保存属性值 然后描述读写属性值的方法

  对于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<>value then

  begin

  FShape := value;

  Invalidate(True) 强制新形状的重画

  end;

  end;

   覆蓋constructor和destructor

  为了改变缺省属性值和初始化部件拥有的对象 需要覆蓋继承的constructor和destructor方法

  图形控制的缺省大小是相同的 因此需要改变Width和Height属性

  本例中Shape控制的大小的初始设置为边长 个象素点

  ⑴ 在部件声明中增加覆蓋constructor

  type

  TSampleShape=class(TGraphicControl)

  public

  constructor Create(Aowner: TComponent) override;

  end;

  ⑵ 用新的缺省值重新声明属性Height和width

  type

  TSampleShape=class(TGrahicControl)

  published

  property Height default ;

  property Width default ;

  end;

  ⑶ 在库单元的实现部分编写新的constructor

  constructor TSampleShape Create(Aowner: TComponent)

  begin

  inherited Create(AOwner)

  width := ;

  Height := ;

  end;

   公布Pen和Brush

  在缺省情况下 一个Canvas具有一个细的 黑笔和实心的白刷 为了使用户在使用Shape控制时能改变Canvas的这些性质 必须能在设计时提供这些对象 然后在画时使用这些对象 这样附属的Pen或Brush被称为Owned对象

  管理Owned对象需要下列三步

  ● 声明对象域

  ● 声明访问属性

  ● 初始化Owned对象

  ⑴ 声明Owned对象域

  拥有的每一个对象必须有对象域的声明 该域在部件存在时总指向Owned对象 通常 部件在constructor中创建它 在destructor中撤消它

  Owned对象的域总是定义为私有的 如果要使用户或其它部件访问该域 通常要提供访问属性

cha138/Article/program/Delphi/201311/25110

相关参考

知识大全 Delphi自定义部件开发(四)[3]

DELPHI基础教程:Delphi自定义部件开发(四)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(四)[1]

DELPHI基础教程:Delphi自定义部件开发(四)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(一)[2]

DELPHI基础教程:Delphi自定义部件开发(一)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(二)[2]

DELPHI基础教程:Delphi自定义部件开发(二)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(三)[2]

DELPHI基础教程:Delphi自定义部件开发(三)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(一)[3]

DELPHI基础教程:Delphi自定义部件开发(一)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(一)[1]

DELPHI基础教程:Delphi自定义部件开发(一)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(二)[4]

DELPHI基础教程:Delphi自定义部件开发(二)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(二)[3]

DELPHI基础教程:Delphi自定义部件开发(二)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Delphi自定义部件开发(一)[4]

DELPHI基础教程:Delphi自定义部件开发(一)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看