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');

プロセスでファイルを使用せずにデータベースから TRichEdit に rtf テキストをインポートするにはどうすればよいですか? この質問の解決策を試しました が、うまくいきません。プレーンテキストで表示され、各文字の間にスペースがあります。

ありがとうサム

4

2 に答える 2

1

RTFコードをにロードしようとしている場合はTRichEdit、RTFをオブジェクトに配置し、プロパティをFalseに設定しTStreamてRichEditのLoadFromStream()メソッドを使用します。PlainText

于 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 に答える