首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TRichEdit顶部插入彩色行

在TRichEdit顶部插入彩色行
EN

Stack Overflow用户
提问于 2016-11-04 12:33:11
回答 2查看 1.2K关注 0票数 6

我使用TRichEdit来显示在我的应用程序中完成的最后一次操作。我的TRichEdit的第一行应该是最后一个操作。如果操作失败,我想把这行写成红色。

我的问题是,我无法在我的TRichEdit顶部插入一条彩色线。以下是我尝试过的:

代码语言:javascript
复制
RichEditLog.SelAttributes.Color := clBlack;
RichEditLog.Lines.Insert(0, 'Operation 1 OK');
// RichEditLog.Lines.Add('Operation 1 OK');

RichEditLog.SelAttributes.Color := clRed;
RichEditLog.Lines.Insert(0, 'Operation 2 failed');
// RichEditLog.Lines.Add('Operation 2 failed');

RichEditLog.SelAttributes.Color := clRed;
RichEditLog.Lines.Insert(0, 'Operation 3 failed');
// RichEditLog.Lines.Add('Operation 3 failed');

RichEditLog.SelAttributes.Color := clBlack;
RichEditLog.Lines.Insert(0, 'Operation 4 OK');
// RichEditLog.Lines.Add('Operation 4 OK');

问题是,我的TRichEdit只应用第一个颜色的变化,并保留它的所有线条。如果我使用Add()而不是Insert(),则颜色正在发生变化,但行将插入到我的TRichEdit的末尾。

我的问题是:有一个简单的方法来获得我想要的结果吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-04 12:55:23

如果要在开头插入,则需要将选定的开始和长度设置为0:

代码语言:javascript
复制
RichEditLog.SelStart := 0;
RichEditLog.SelLength := 0;
RichEditLog.SelAttributes.Color := clBlack;
RichEditLog.Lines.Insert(0, 'Operation 1 OK');

或者,您可以将文本分配给RichEditLog.Lines.Insert(),而不是RichEdit.SelText,但是您需要自己添加新的行字符f.ex。

代码语言:javascript
复制
RichEditLog.SelText := 'Operation 1 OK'+sLineBreak;

无论哪种方式,当应用于测试代码时,结果是:

票数 5
EN

Stack Overflow用户

发布于 2016-11-04 12:40:53

你试过和SelAttributesSelTextSelStartSelLenght一起玩吗?

代码语言:javascript
复制
Insert(0,'This is blue text.');
RichEdit1.SelStart := 0; 
RichEdit1.SelLenght := //end;
RichEdit1.SelAttributes.Color := clBlue;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40422780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档