码迷,mamicode.com
首页 > Windows程序 > 详细

delphi xe6 firemonkey关于canvas的bug

时间:2014-12-16 17:05:36      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   on   2014   问题   log   

最近在使用xe6开发MockPlus2.0桌面端,使用的firemonkey框架,组件里面的Canvas真是折腾人。

情景还原:

工作区拉伸组件时在上面需要绘制当前组件的大小参数,想要的效果是下图,在淡蓝色选择框上面有半透明黑色背景中显示的此时选择框的高宽

bubuko.com,布布扣

可是,事与愿违,在更改了组件文字style以后(此处是加了删除线、下划线),出现了以下奇怪问题:

bubuko.com,布布扣

显示组件高宽的文字居然也有了删除线和下划线,实现的关键代码就两句话:

Canvas.Fill.Color := $FFFFFFFF;
Canvas.FillText(LabelRect, LabelStr, False, 1, [], TTextAlign.Center);

这个Canvas是属于上面淡蓝色选择框对象的,与下面的组件(Tooltip)毫无关系。

这也太奇怪了吧,然后试了试这样处理,在绘制之前先去掉这个Canvas的style,即:


Canvas.Font.Style := [];
Canvas.Fill.Color := $FFFFFFFF;
Canvas.FillText(LabelRect, LabelStr, False, 1, [], TTextAlign.Center);

这样做的结果就是,文字正常了,得到了想要的效果。

有点怀疑这个firemonkey里面的Canvas是全局共享的(如果不是则是xe6的一个bug)。

delphi xe6 firemonkey关于canvas的bug

标签:style   blog   http   color   使用   on   2014   问题   log   

原文地址:http://blog.csdn.net/zxinlong/article/details/41961825

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!