Обновление с D2005 до D2010: TRichEdit - PullRequest
1 голос
/ 26 июля 2011

Следующий код хорошо работает на D2005:

  MyRichEdit1.Text := TMemoField(Query1.FieldByName('Msg')).asString;

Но в D2010 этот код выводит текст в виде обычного текста, а не на RTF.

Для решения проблемы яиспользуя следующий код

MyRichEdit1.PlainText := False;
MyRichEdit1.Text := TMemoField(Query1.FieldByName('Msg')).asString;
MyRichEdit1.PlainText := TRUE;
MyRichEdit1.Lines.SaveToFile('Lixo.Rtf');
MyRichEdit1.PlainText := False;
MyRichEdit1.Lines.LoadFromFile('Lixo.Rtf');

Как я могу импортировать текст RTF из базы данных в TRichEdit, не используя файл в процессе?Я попытался решить этот вопрос на этом вопросе , но он не работает, он отображается в виде простого текста и с пробелом между символами.

Спасибо, Сэм

Ответы [ 2 ]

1 голос
/ 28 июля 2011

Если вы пытаетесь загрузить код RTF в TRichEdit, поместите RTF в объект TStream и используйте метод RichEdit LoadFromStream() со свойством PlainText, установленным в False.

0 голосов
/ 29 марта 2012

Это решение для C ++ Builder XE, но аналогичное можно использовать для Delphi.

UnicodeString str = L"{\\rtf1 \\qr r{\\sub nom} = ----}"; // some rtf coded text
stream = new TStringStream();
stream->Clear();
stream->WriteString(str);
stream->Seek(0, soFromBeginning);
MyRichEdit1->Lines->LoadFromStream(stream);
delete stream;
stream = NULL;
...