从D2005升级到D2010: TRichEdit



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

谢谢山姆

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

此解决方案适用于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;

相关内容

  • 没有找到相关文章

最新更新