Board logo

Subject: 发现BUG。。。。。关于 括号匹配的问题; [Print This Page]

Author: inbreak    Time: 2009-6-7 22:44     Subject: 发现BUG。。。。。关于 括号匹配的问题;

第一幅图是正常的时候的样子。


第二幅图是鼠标焦点进去代码中的样子。

Image Attachment: 1.JPG (2009-6-7 22:44, 5.07 K) / Download count 390
http://bbs.cnpack.org/attachment.php?aid=650



Image Attachment: 2.JPG (2009-6-7 22:44, 6.04 K) / Download count 407
http://bbs.cnpack.org/attachment.php?aid=651


Author: inbreak    Time: 2009-6-7 22:47

我把鼠标焦点放在这段代码的后面时,就变成这样子了。

如果关掉 专家 的括号匹配 功能。就没有此问题。


为此我下载最新版的 专家。。问题,依然是这样。

Image Attachment: 3.JPG (2009-6-7 22:47, 5.99 K) / Download count 398
http://bbs.cnpack.org/attachment.php?aid=652


Author: Passion    Time: 2009-6-7 23:22

请问您的DELPHI版本?是否D2009?
Author: inbreak    Time: 2009-6-8 08:30

D2007
Author: Passion    Time: 2009-6-8 12:19

这个问题是由于字符串中的d和%之间的那个字符(可能是全角星号?)引起的,一般我们绘制括号前计算括号的位置的时候,会将字符串中的双字节字符当作两个字符宽度处理,然而有些特殊字符比如楼主图中的那个,还有部分外文字符等,自身是双字节,但绘制只占一个字符宽度,这就导致了我们计算出来的位置的偏差。
如果逐个字符去判断,又难免会影响性能,不太好处理。
Author: inbreak    Time: 2009-6-8 15:31

发现了。

凡是我的 format 语句中 有 × (全角) 就会出现问题。。。换成 * 就没有问题。

但是为什么 format 语句里面有 中文不会出现呢?
Author: Passion    Time: 2009-6-8 18:23

因为“中”这全角字符确实是占两个字符的宽度,而全角的星号在编辑器这字体中只占一个字符的宽度。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0