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

Posted 部件

篇首语:君子报仇,十年不晚。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi自定义部件开发(四)[3]相关的知识,希望对你有一定的参考价值。

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

  下面的代码声明了Pen和Brush的对象域

  type

  TSampleShape=class(TGraphicControl)

  private

  FPen: TPen;

  FBrush: TBrush;

  end;

  ⑵ 声明访问属性

  可以通过声明与Owned对象相同类型的属性来提供对Owned对象的访问能力 这给使用部件的开发者提供在设计时或运行时访问对象的途径

  下面给Shape控制提供了访问Pen和Brush的方法

  type

  TSampleShape=class(TGraphicControl)

  private

  procedure SetBrush(Value: TBrush)

  procedure SetPen(Value: TPen)

  published

  property Brush: TBrush read FBrush write SetBrush;

  property Pen: TPen read FPen write SetPen;

  end;

  然后在库单元的implementation部分写SetBrush和SetPen方法

  procedure TSampleShape SetBrush(Value: TBrush)

  begin

  FBrush Assign(Value)

  end;

  procedure TSampleShape SetPen(Value: TPen)

  begin

  FPen Assign(Value)

  end;

  ⑶ 初始化Owned对象

  部件中增加了的新对象 必须在部件constructor中建立 这样用户才能在运行时与对象交互 相应地 部件的destructor必须在撤消自身之前撤消Owned对象

  因为Shape控制中加入了Pen和Brush对象 因此 要在constructor中初始化它们 在destructor中撤消它们

  ① 在Shape控制的constructor中创建Pen和Brush

  constructor TSampleShape Create(Aowner: TComponent)

  begin

  inherited Create(AOwner)

  Width := ;

  Height := ;

  FPen := TPen Create;

  FBrush := TBrush Create;

  end;

  ② 在部件对象的声明中覆蓋destructor

  type

  TSampleShape=class(TGraphicControl)

  public

  construstor Create(Aowner: TComponent) override;

  destructor destroy; override;

  end;

  ③ 在库单元中的实现部分编写新的destructor

  destructor TSampleShape destroy;

  begin

  FPen Free;

  FBrush Free;

  inherited destroy;

  end;

  ④ 设置Owned对象的属性

  处理Pen和Brush对象的最后一步是处理Pen和Brush发生改变时对Shape控制的重画问题 Pen和Brush对象都有OnChange事件 因此能够在Shape控制中声明OnChange事件指向的事件处理过程

cha138/Article/program/Delphi/201311/25111

相关参考

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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