2012-03-17 50 views
0

我正在使用RichEdit,我正在添加线条,包含各种颜色。现在我用这个办法:如何添加一个RTF字符串到RichEdit?

LogRichEdit.Lines.Add(someText); 
... 
LogRichEdit.SelStart:=res+8; 
LogRichEdit.SelLength:=4; 
LogRichEdit.SelAttributes.Color:=clSilver; 

其中res是文本格式的位置。不要管那个。我遇到的问题是,当我添加此行然后进行编辑时,它会闪烁(通过选择和取消选择文本)。 如何以更好的方式使用它?我以为我可以有一个类似的rtf-string变量,用它来做我的事情,然后把它变成RichEdit。要么?

回答

2

您应该能够通过使用BeginUpdate/EndUpdate来避免闪烁。

RichEdit.Lines.BeginUpdate; 
try 
    // make modifications to RichEdit.Lines 
finally 
    RichEdit.Lines.EndUpdate; 
end; 

对BeginUpdate的调用禁止UI更新,直到调用EndUpdate。