احصل على Richtext من Richedit في Delphi
-
30-09-2019 - |
سؤال
هل هناك طريقة للحصول على بيانات RTF من Richedit دون استخدام SavetoStream كما في
strStream := TStringStream.Create('') ;
try
RichEdit.Lines.SaveToStream(strStream);
Text := strStream.DataString;
strStream.CleanupInstance;
finally
strStream.Free
المحلول
تيم الطريقة الوحيدة للحصول على بيانات RTF من عنصر تحكم RichEdit هي استخدام دفق لأن رسالة Windows (EM_STREAMOUT
) استرداد بيانات RTF تتطلب أ EditStreamCallback
الهيكل ، هذه هي الطريقة التي تستخدمها Windows لنقل بيانات RTF إلى أو خارج عن عنصر تحكم غني.
حتى تتمكن من استخدام رمز العينة الخاص بك ، أو تنفيذ المكالمة على رسالة Windows 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;
يمكنني أن أشهد الانحراف عن النمط يؤدي إلى الإحباط ....
لا تنتمي إلى StackOverflow