编辑查找受保护的文本



我正在研究TRichEdit(Delphi XE2(。

有什么方法可以检查富编辑文本框是否包含受保护的文本? 也是该受保护文本的起始位置,而不遍历完整文本。

目前我正在使用下面的代码

source.SelStart := charNo; //source is richedit name and charno is the                     
                        //iterating loop 
source.SelLength := 1;
if (source.SelAttributes.Protected) then

当文本很大时,上面的代码需要花费大量时间才能执行。

这曾经在德尔福 4 中工作正常

有人可以告诉为什么相同的代码在德尔福 XE2 中谈论

更多时间而在德尔福 4 中谈论更少的时间也是在德尔福 XE2 中执行此操作的正确方法?

无法搜索文本属性。 迭代单个字符并查询其属性是唯一的选择。

要加快代码速度,您可以:

  1. 使用"EM_SETSEL"或"EM_EXSETSEL"窗口消息,而不是分别设置 SelStartSelLength 属性。

  2. 使用EM_SETEVENTMASK窗口消息在迭代时关闭 RichEdit 的内部通知(如 EN_HSCROLLEN_VSCROLLEN_SELCHANGE(。

  3. 您还可以考虑使用WM_SETREDRAW窗口消息来禁用 RichEdit 在迭代时重新绘制。

相关内容

  • 没有找到相关文章

最新更新