(如果您能更好地理解和定义我的问题,请编辑标题。)
我遇到的问题是 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,我确实改变了它的线条样式,但这不可能以任何方式相关......可以吗?(不,它没有,我刚刚检查过。)
基本上:德尔福到底是什么?没有比这更简单的了,我仍然失败了,有人可以解释和/或解决这个问题吗?问问题,如果有不清楚的地方,我会尽可能详细地说明。