Как добавить текст не к новой строке, а к последней существующей строке? Lines.Add и Lines.Append добавить текст как новую строку, а Lines.Insert - это позиция, которую я не знаю, как ее найти.Как добавить текст в последнюю строку элемента управления RichEdit?
ответ
Вы можете использовать саму последнюю строку, или весь контент:
// 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];
Вы можете использовать свойства «Строки» и «Счет».
RichEdit1.Lines.Strings [RichEdit1.Lines.Count-1]: = RichEdit1.Lines.Strings [RichEdit1.Lines.Count-1] + 'Text';
Lines.Strings [] и Lines [] - одно и то же; Строки - это свойство по умолчанию, которое считывает и записывает Lines.Strings. –
Выполните
with RichEdit1 do
begin
Lines.Add(s);
Perform(EM_SCROLL, SB_LINEDOWN, 0);
end;
Я пробовал, и это сработало. Большое спасибо. Но теперь как я могу отформатировать этот добавленный текст. –