组件制作之三(图形控件)[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 linzhengqun 的 blog

vcl中的shape是个很不错的控件,可以选择几种图形,以满足我们的需求,但有时候就是觉得它的可选图形少了一点,比如我们想要一个三角形,它却没有。于是就想到来扩展一下这个控件,名为shapeex。其实扩展的功能不多,只是增加了一些图形。而类也并不是继承自tshape,而是继承自tgraphiccontrol,这样可以让我们彻底看看图形控件的做法。tshape也是继承自tgraphiccontrol。而我们的扩展控件功能是基于shape的扩展,所以当然里面的代码几乎取之tshape,只是加了一些扩展图形的代码,但又有什么关系呢,vcl源码是最好的学习资源,我们何不取之用之。

 

很多东西我们已经在上面说过了,这里不多说了,我要直入图形控件的重点。图形控件不是封装windows的控件,而是delphi自己画出来的,那么它肯定有一个画控件的函数。这个函数就是:

paint;

 看一下vcl源码,可以知道它定义在tgraphiccontrol。中:

 procedure paint; virtual;

这是一个虚函数,那么它的实现是怎么样的呢,点击看它的实现如下:

procedure tgraphiccontrol.paint;

begin

end;

里面什么码也没有,这个很容易理解,因为它不可能知道他的子类的图形是什么样子的。所以设为虚函数,由它的子类来覆盖它。

 

本文关键:组件制作之三(图形控件)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top