【发布时间】:2013-08-31 12:08:48
【问题描述】:
我正在使用 Delphi 2007 和 SynEdit 组件。
我是开源编辑器 (Tinn-R) 的主要开发人员,我正在尝试从 SynEdit ANSI 切换到 UNICODE。
经过几个月的工作,除了 OnPaintTransient 程序外,一切正常。
为了找出问题的根源,我尝试了原始演示 OnPaintTransientDemo。 这在 SynEdit 的最新 ANSI 版本中完美运行。但是,我没有得到与最新 UNICODE 版本相同的结果。
如果指令只占一行,则只有光标附近的一个符号“[] {} or ()”被错误高亮,没有关闭。
换句话说,当您单击第一个括号“(”最后一个括号“)”时不会改变颜色。 它应该为开始和结束标签着色。例如,考虑“|”作为光标位置:
(|aaaa) -> only ( is highlighted
(aaaa|) -> only ) is highlighted
但是,如果符号位于不同的行中,则会正确突出显示:
(|a
a
a
a) -> both () are highlighted
(a
a
a
a|) -> both () are highlighted
这看起来像是组件源代码中的错误!
(做debug没找到bug的来源。)
有人可以帮忙吗?
【问题讨论】:
-
你能否澄清这句话“如果在同一行,只有光标附近的符号“[] {}或()”被错误地突出显示,而不是关闭。”请?这没有意义。
-
我觉得现在看起来好多了:抱歉,英语不是我的母语。
标签: delphi editor delphi-2007 synedit