2009-12-31 2 views

ответ

3

Вы можете использовать саму последнюю строку, или весь контент:

// RE = TRichEdit, Temp = string; 
// Last line only 
Temp := RE.Lines[RE.Lines.Count - 1]; 
Temp := Temp + ' plus some new text'; 
RE.Lines[RE.Lines.Count - 1] := Temp; 

// The entire content 
Temp := RE.Text; 
Temp := Temp + ' plus some new text'; 
RE.Text := Temp; 

Обратите внимание, что первый способ лучше, особенно когда RichEdit содержит большое количество текста. Чтение и запись в RichEdit.Text может включать перемещение большого количества текста вокруг в памяти.

EDIT: После того, как замечание OP к моему ответу:

Для форматирования текста, сохранить SelStart перед добавлением, а затем использовать SelLength и SelAttributes применить форматирование:

// StarPos and Len are both Integers. 
StartPos := Length(RE.Text); 
Len := Length(YourNewTextToBeAdded); 
// Do stuff here to add text 
RE.SelStart := StartPos; 
RE.SelLength := Len; 
RE.SelAttributes.Style := RE.SelAttributes.Style + [fsBold]; 
+0

Я пробовал, и это сработало. Большое спасибо. Но теперь как я могу отформатировать этот добавленный текст. –

1

Вы можете использовать свойства «Строки» и «Счет».

RichEdit1.Lines.Strings [RichEdit1.Lines.Count-1]: = RichEdit1.Lines.Strings [RichEdit1.Lines.Count-1] + 'Text';

+0

Lines.Strings [] и Lines [] - одно и то же; Строки - это свойство по умолчанию, которое считывает и записывает Lines.Strings. –

1

Выполните

with RichEdit1 do 
begin 
Lines.Add(s); 
Perform(EM_SCROLL, SB_LINEDOWN, 0); 
end;