我正在使用a 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:
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;
无论哪种方式,当应用于您的测试代码时,结果是: