以下代码适用于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? 我尝试了解决方案 this question 但它不起作用,它以纯文本形式出现,每个字符之间都有一个空格。
由于 萨姆
答案 0 :(得分:1)
如果您尝试将RTF代码加载到TRichEdit
,请将RTF放入TStream
对象,并使用RichEdit的LoadFromStream()
方法设置PlainText
属性为假。
答案 1 :(得分: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;