如何使用Delphi(XE10)在Trichedit中选择某些表行



i具有一个tjvrichedit控件,其中包含一个填充文本的行/单元格的表。我想选择一些整行(例如,第一行和第一线 1),然后将它们复制到剪贴板(或流)。我使用代码Bellow:

SelStart := Perform(EM_LINEINDEX, firstLine, 0);
SelLength:= length(lines[firstLine]) + length(lines[firstLine+1]);
CopyToClipboard;

但是它从第一线到第一线 3(甚至从下一表中选择行!)。如果我降低长度(例如卖出:= 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

在多个线以上的情况下相同(仅将整个长度减少一次)

相关内容

  • 没有找到相关文章

最新更新