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