gpt4 book ai didi

delphi - 在 TRichEdit 顶部插入彩色线

转载 作者:行者123 更新时间:2023-12-03 15:00:28 25 4
gpt4 key购买 nike

我使用 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');

或者,您可以将文本分配给 RichEdit.SelText,而不是 RichEditLog.Lines.Insert(),但随后您需要自己添加新行字符,例如:

RichEditLog.SelText := 'Operation 1 OK'+sLineBreak;

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

enter image description here

关于delphi - 在 TRichEdit 顶部插入彩色线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40422780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com