При загрузке из StringList в RichEdit выходит ошибка class EOutOfResources и line insertion error
Вот код, после которого выходит такая ошибка:
var
i:string;
sl2: TStringList;
begin
re1.Clear;
sl2 := TStringList.Create;
sl2.LoadFromFile('0_doc.rtf');
re1.Lines.AddStrings(sl2);
Ответы (1 шт):
А зачем так делать?
re1.Lines.LoadFromFile('0_doc.rtf');
загрузит файл правильно, с обработкой внутреннего форматирования.
В StringList же загрузятся сырые строки типа {\rtf1\adeflang1025\ansi\ansicpg1251\uc1\adeff0\de и не факт, что они считаются правильно - как в StringList, так и при перебросе в РичЕдит.
Кроме того, в зависимости от версии RichEdt.dll размер текста в нём может быть ограничен (например, 64 КБ когда-то было).
Проверить лимит размера - EM_GETLIMITTEXT, но если не загружает маленькие файлы - дело не в размере.
Если нужна загрузка по частям для визуальных целей, можно создать невидимый RichEdit и копировать из него.
Можно также воспользоваться сообщением EM_STREAMIN. Вот какой-то древний пример я делал