1

以下代码在 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,而无需在此过程中使用文件?我尝试了 这个问题的解决方案, 但它不起作用,它以纯文本显示,每个字符之间有一个空格。

谢谢山姆

4

2 回答 2

1

如果您尝试将 RTF 代码加载到 中TRichEdit,则将 RTF 放入TStream对象并使用 RichEdit 的LoadFromStream()方法并将PlainText属性设置为 False。

于 2011-07-27T20:00:37.103 回答
0

此解决方案适用于 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;
于 2012-03-29T09:18:21.860 回答