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

Posted 部件

篇首语:只要还有什么东西不知道,就永远应当学习。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi自定义部件开发(四)[4]相关的知识,希望对你有一定的参考价值。

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

  下面给Shape控制增加了该方法并更新了部件的constructor以使Pen和Brush事件指向新方法

  type

  TSampleShape = class(TGraphicControl)

  published

  procdeure StyleChanged(Sender: TObject)

  end;

  implemintation

  constructor TSampleShape Create(AOwner:TComponent)

  begin

  inherited Create(AOwner)

  Width := ;

  Height := ;

  Fpen := TPen Create;

  FPen OnChange := StyleChanged;

  Fbrush := TBrush Create;

  FBrush OnChange := StyleChanged;

  end;

  procedure TSampleShape StyleChanged(Sender: TObject)

  begin

  Invalidate(true)

  end;

  当变化发生时 部件重画以响应Pen或Brush的改变

   怎样画部件图形

  图形控制基本要素是在屏幕上画图形的方法 抽象类TGraphicControl定义了名为Paint的虚方法 可以覆蓋该方法来画所要的图形

  Shape控制的paint方法需要做

  ● 使用用户选择的Pen和Brush

  ● 使用所选的形状

  ● 调整座标 这样 方形和圆可以使用相同的Width和Height

  覆蓋paint方法需要两步

  ● 在部件声明中增加Paint方法的声明

  ● 在implementation部分写Paint方法的实现

  下面是Paint方法的声明

  type

  TSampleShape = class(TGraphicControl)

  protected

  procedure Paint; override;

  end;

  然后 编写Paint的实现

  procedure TSampleShape Paint;

  begin

  with Canvas do

  begin

  Pen := FPen;

  Brush := FBrush;

  case FShape of

  sstRectangle sstSquare :

  Rectangle( Width Height)

  sstRoundRect sstRoundSquare:

  RoundRect( Width Height Width div Height div )

  sstCircle sstEllipse :

  Ellipse( Width Height)

  end;

  end;

  end;

  无论任何控制需要更新图形时 Paint就被调用 当控制第一次出现 或者当控制前面的窗口消失时 Windows会通知控制画自己 也可以通过调用Invalidate方法强制重画 就象StyleChanged方法所做的那样

  返回目录 DELPHI基础教程

       编辑推荐

       Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

  Visual C++音频/视频技术开发与实战

  Oracle索引技术

  ORACLE G数据库开发优化指南

  Java程序性能优化 让你的Java程序更快 更稳定

  C嵌入式编程设计模式

  Android游戏开发实践指南

cha138/Article/program/Delphi/201311/25112

相关参考

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

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

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

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

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

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

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

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