【发布时间】:2016-11-27 18:25:31
【问题描述】:
我有一个 TjvRichedit 控件,其中包含一个表格,其中一些行/单元格填充了文本。 我想选择一些整行(例如行 firstLine 和 firstLine+1)并将它们复制到剪贴板(或流)。我使用下面的代码:
SelStart := Perform(EM_LINEINDEX, firstLine, 0);
SelLength:= length(lines[firstLine]) + length(lines[firstLine+1]);
CopyToClipboard;
但它从 firstLine 到 firstLine+3 进行选择(甚至从下一个表中选择行!)。 如果我减少长度(例如 SelLength:= 2),它会选择两行! 请问我该怎么做我想要的?
【问题讨论】:
-
firstLine 和 firstLine+1) 是什么意思?你的意思是第一行+第二行的第一个字符?
-
我在 Delphi 7 和 Delphi 10 西雅图试了试,效果很好。
-
您可以查看我的更新并尝试一下。
-
我试过你的代码,但它和我遇到的问题一样。当文档有 tables 时会发生这种情况,它似乎计算了一些不可见的字符(超出每行的 CR+LF)。所以这是我的问题。女巫,他们有多少人?
-
我看到每个带有一些单元格的表格行的文本都由 RichEdit 行表示。这样一行的文本以字符#$FFF9#$D 开头,以#$FFF9#$D 结尾。单元格之间的文本除以#7 length(richedit.lines[i]) 计算所有这些字符,但 selstart 和 sellength 不计算 (?)。在这种情况下,我该如何解决?