gpt4 book ai didi

delphi - Richedit 样式格式自行更改

转载 作者:行者123 更新时间:2023-12-02 09:39:27 27 4
gpt4 key购买 nike

(如果您能更好地理解和定义我的问题,请有人编辑标题。)

我遇到的问题是 RichEdit 的样式格式“恢复”回默认的“无”又名 [],然后返回到我设置的任何内容,粗体或斜体示例。

问题所在 - 我认为,因为我不知道它是如何破坏事情的 - 是一个过程(REMainLinesCheck),它检查 RichEdit 中的行数并删除第一行,直到达到某个点(一次最多显示 14 行)如下所示:

while REMain.Lines.Count > 14 do
REMain.Lines.Delete(0);

我在向 RichEdit 添加行的其他过程中出现了 6 次上述过程,但它们都没有更改 RichEdit.SelAttributes.Style,只有一次,只添加了一个粗体行,如下所示:

REMain.SelAttributes.Style := [fsBold];
REMain.Lines.Add('something');
REMainLinesCheck;

所以我删除了除那一个之外的所有出现,并开始四处寻找,没过多久就发现它实际上工作得很好,正常添加的常规和粗体行以及删除的多余行 - 没有问题。但是,一旦我将 REMainLinesCheck 过程重新引入到另一个过程中(为了清楚起见,我们将其称为 Proc3Lines,因为这就是它的作用:添加 3 行,然后调用对多余行的检查),此 Proc3Lines 后面的每一行都应该是粗体不是...根据我在这里的经验,REMainLinesCheck 似乎在 Proc3Lines 中做了一些事情,因为没有它一切都很好。

显然不是一圈程序互相调用,而是代码的其他部分与这个RichEdit无关,更何况我不改RichEdit.SelAttributes.Style 除了我已经展示的一个地方之外,在 REMain 的任何地方,同一单元中还有另一个 RichEdit,我确实像这样更改了其行的样式,但这不可能以任何方式相关......可以吗? (不,没有,我刚刚检查过。)

基本上:Delphi 到底是什么?它不能比这更简单,而且我仍然失败,有人可以解释和/或解决这个问题吗?提出问题,如果有不清楚的地方,我会尽可能详细地说明。

最佳答案

要将格式应用于新添加的行,请使用以下命令:

procedure TForm1.Button1Click(Sender: TObject);
var
LineIndex: Integer;
begin
LineIndex := RichEdit1.Lines.Add('Something');
RichEdit1.SelStart := RichEdit1.Perform(EM_LINEINDEX, LineIndex, 0);
RichEdit1.SelLength := RichEdit1.Perform(EM_LINELENGTH, RichEdit1.SelStart, 0);
RichEdit1.SelAttributes.Style := [fsBold];
end;

关于delphi - Richedit 样式格式自行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645033/

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