我正在使用TRichEdit
来显示我的应用程序中已完成的上一次操作。我TRichEdit
的第一行应该是最后一次操作。如果操作失败,我想把这一行改为红色。
我的问题是我无法在TRichEdit
的顶部插入彩色线条。这是我尝试过的:
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
的末尾。
我的问题是:有没有一种简单的方法可以获得我想要的结果?
答案 0 :(得分:5)
如果要在开头插入,则需要将选定的开始和长度设置为0:
RichEditLog.SelStart := 0;
RichEditLog.SelLength := 0;
RichEditLog.SelAttributes.Color := clBlack;
RichEditLog.Lines.Insert(0, 'Operation 1 OK');
或者,您可以将文本分配给RichEditLog.Lines.Insert()
,而不是RichEdit.SelText
,但是您需要自己添加新的行字符,f.ex。:
RichEditLog.SelText := 'Operation 1 OK'+sLineBreak;
无论哪种方式,当应用于您的测试代码时,结果为:
答案 1 :(得分:1)
您是否尝试过使用SelText
和SelStart
,SelLenght
,Insert(0,'This is blue text.');
RichEdit1.SelStart := 0;
RichEdit1.SelLenght := //end;
RichEdit1.SelAttributes.Color := clBlue;
?
@Rule
public ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule<MainActivity>(
MainActivity.class, true, true) {
};