[英]How to fire notification in delphi XE10 seattle without vibration
[英]How to select certain table rows in TRichedit with Delphi (Xe10)
我有一个TjvRichedit控件,其中包含一个表格,其中某些行/单元格填充了文本。 我想选择一些完整的行(例如,行firstLine和firstLine + 1)并将其复制到剪贴板(或流)中。 我使用以下代码:
SelStart := Perform(EM_LINEINDEX, firstLine, 0);
SelLength:= length(lines[firstLine]) + length(lines[firstLine+1]);
CopyToClipboard;
但它从firstLine到firstLine + 3中进行选择(甚至从下一个表中选择行!)。 如果我减小长度(例如SelLength:= 2),它将选择两行! 请问我该怎么做呢?
要选择第一Line
并将所选文本复制到剪贴板:
RichEdit1.SelStart:=0;
RichEdit1.SelLength:=length(RichEdit1.Lines.[0]);
RichEdit1.CopyToClipboard;
要选择第一Line
+第二Line
的第一个字符,然后将所选文本复制到剪贴板:
RichEdit1.SelStart:=0;
RichEdit1.SelLength:=length(RichEdit1.Lines[0])+2;
RichEdit1.CopyToClipboard;
选择第二Line
:
RichEdit1.SelStart:=length(RichEdit1.Lines[0])+1;
RichEdit1.SelLength:=length(RichEdit1.Lines[1]);
如果选择是在表格行的开头,则必须排除前两个字符
RichEdit1.SelStart := Perform(EM_LINEINDEX, LineNo, 0) + 2; // start two chars beyond the linestart
RichEdit1.SelLength:= Perform(EM_LINELENGTH, RichEdit1.SelStart,0) - 2; // decrease the whole length by these two chars
多于一行的情况相同(仅将全长减一两)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.