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

Posted 部件

篇首语:宁死不背理,宁贫不堕志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi自定义部件开发(四)[1]相关的知识,希望对你有一定的参考价值。

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

   创建图形部件

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

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

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

  ● 创建和注册部件

  ● 公布(publishing)继承的属性

  ● 增加图形功能

   创建和注册部件

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

  ● 建立名为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

   公布继承的属性

  一旦决定了部件类型 就能决定在父类的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控制具有通过鼠标和拖放与用户交互的能力

   增加图形能力

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

  ● 决定画什么

  ● 怎样画部件图形

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

   决定画什么

  图形部件通常都具有改变外观的能力 图形控制的外观取决于其某些属性的结合 例如Gauge控制具有决定其形状 方向和是否图形化地显示其过程的能力 同样 Shape控制也应有决定显示各种形状的能力

  给予Shape控制这种能力 增加名为Shape的属性 这需要下列三步

  ● 声明属性类型

  ● 声明属性

  ● 编写实现方法

  ⑴ 声明属性类型

  当声明一个用户自定义类型的属性时 必须首先声明属性类型 最普通地用于属性的自定义类型是枚举类型

  对Shape控制来说 需要声明一个该控制能画形状的枚举 下面是枚举类型的声明

  type

  TSampleShapeType=(sstRectangle sstSquare sstRoundRect

  sstRoundSquare sstEllipse sstCircle)

  TSampleShape = class(TGraphicControl)

  end;

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

cha138/Article/program/Delphi/201311/25109

相关参考

知识大全 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自定义部件开发(二)[1]

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

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

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

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

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

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

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

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

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

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

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

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

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