簡體   English   中英

在TRichEdit頂部插入彩色線條

[英]Insert colored line at the top of TRichEdit

我正在使用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;

無論哪種方式,當應用於您的測試代碼時,結果是:

在此輸入圖像描述

你嘗試過使用SelAttributesSelTextSelStartSelLenght嗎?

Insert(0,'This is blue text.');
RichEdit1.SelStart := 0; 
RichEdit1.SelLenght := //end;
RichEdit1.SelAttributes.Color := clBlue;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM