第十九章 Delphi自定义部件开发(四) .docVIP

第十九章 Delphi自定义部件开发(四) .doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十九章 Delphi自定义部件开发(四) .doc

第十九章 Delphi自定义部件开发(四) 19.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, GraphicsControls,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控制的例子中,需要增加一些能使用户在设计时改变形状的属性。   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 FShapevalue then beg

文档评论(0)

gdkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档