有没有办法在不使用 savetostream 的情况下从 Richedit 获取 RTF 数据
strStream := TStringStream.Create('') ;
try
RichEdit.Lines.SaveToStream(strStream);
Text := strStream.DataString;
strStream.CleanupInstance;
finally
strStream.Free
有没有办法在不使用 savetostream 的情况下从 Richedit 获取 RTF 数据
strStream := TStringStream.Create('') ;
try
RichEdit.Lines.SaveToStream(strStream);
Text := strStream.DataString;
strStream.CleanupInstance;
finally
strStream.Free
Tim 从 RichEdit 控件获取 RTF 数据的唯一方法是使用 Stream,因为EM_STREAMOUT
检索 RTF 数据的 windows 消息 () 需要一个EditStreamCallback
结构,这是 windows 用来将 rtf 数据传入或传出 Richedit 控件的方式.
所以你可以使用自己的示例代码,或者实现对 windows message 的调用EM_STREAMOUT
。
function RichTextToStr(red : TRichEdit) : string;
var ss : TStringStream;
begin
ss := TStringStream.Create('');
try
red.Lines.SaveToStream(ss);
Result := ss.DataString;
finally
ss.Free;
end;
end;
procedure CopyRTF(redFrom,redTo : TRichEdit);
var s : TMemoryStream;
begin
s := TMemoryStream.Create;
try
redFrom.Lines.SaveToStream(s);
s.Position := 0;
redTo.Lines.LoadFromStream(s);
finally
s.Free;
end;
end;
我可以证明偏离模式会导致沮丧......