I use TRichEdit to show the last actions that have been performed in my application. The first line of my TRichEdit should be the last operation. If the operation failed, I would like to put this line in red.
My problem is that I cannot insert a colored line at the top of my TRichEdit . Here is what I tried:
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');
The problem is that my TRichEdit only applies the first color change and saves it for all rows. If I use Add() instead of Insert() , the colors change, but the line is inserted at the end of my TRichEdit .
My question is: Is there an easy way to get the results I'm looking for?
source share