TBkgForm
下载连接:http://www.csdn.net/cnshare/soft/openfile.asp?kind=1&id=13575TBkgForm是一个从TForm继承下来的窗体,该窗体能自适应fsNormal和fsMDIForm的风格,用选定的方法(已实现了平铺和拉伸),以选定的BMP格式图片为窗体绘制背景。
该控件实现了以下三个属性:
1.Background。该属性为TPicture类型,可在设计时或运行时为该属性指定一个BMP格式图片作为背景。如果是在设计时指定,则该图片会被作为默认的背景
2.Method。该属性为string类型,可在设计时或运行时为该属性指定一个绘制背景的方法的名称,这些方法必须从TBaseMethod派生,并且已使用TBaseMethod的CreateMethod方法注册
3.PictureFile。该属性为string类型,可在运行时为该属性指定一个BMP格式图片的路径,控件读取该图片并作为背景
之所以将该控件共享出来,有以下几个原因:
1.从该控件的源码中可以学习如何编写和注册控件。
2.自己在写这个控件的时候使用了几个设计模式
3.该控件还有缺陷,想请有兴趣的朋友试用后提出解决和完善的意见。我已知的有以下几个:
a)属性编辑器TMethodProperty始终未能正常工作,设计时Object Inspector中会出现AV错,也不能使用该编辑器在指定控件的Method属性(运行时指定没有问题。平铺:Tile,拉伸:Stretch,注意大小写)
b)绘制背景的方法使用了最简单的实现,性能较差,在窗体缩放时会出现闪烁
c)虽然感觉使用了设计模式,但同时感觉这几个模式实现得并不理想,应该可以改进
d)虽然可以从TBkgForm派生出新的窗体并放到Delphi的Object Repository里,但我不知道如何放到New页面里
使用方法:
1.将所有文件解压到某个目录,解压后该目录里应该会有一个packages的子目录
2.用Delphi 6打开packages目录里的Cogent.bpg,Build CogentVcl.bpl,install DclCogent.bpl
3.将packages目录加入到Delphi 6的Search路径里,否则你要从TBkgForm派生出新的窗体,则必须在新窗体所在的工程中显式地uses packages目录里的uBkgForm单元
4.打开TilePic.dpr(或新建一个窗体,将该窗体的基类改为TBkgForm,当然在该interface段中要use uBkgForm,save并close该工程,再open该工程),现在改变一下窗体的FormStyle、Background(或PictureFile)或Method属性试试
再次说明,共享该控件的目的是想对有需要的朋友有一点参考性帮助;同时我也期望能与大家在技术上交流一下,希望有朋友能对该控件提出有建设性的建议和意见(你要是没有兴趣当然不勉强),请跟贴或发到
2002/11/05