DevExpress 没有提供有关"如何使用TdxRichEditControl
"以编程方式添加和获取富文本的文档。
或者对我的程序中的嵌入式全文编辑器有任何建议吗?我在德尔福西雅图。
我的情况:
我正在创建一个用户需要富文本编辑的程序(如Bold,Italic,Underlining,Font Size,Font family,Paragraph Aligning)。所以我推出了一个DBRichEdit
,用于加载用户将进行更改的文本模型。
所以我需要将此模型文本带到TdxRichEditControl
以应用更改并将其再次提交给DBRichEdit
以将其保存在数据库中。
答案 0 :(得分:1)
如果你只想将部分文本插入到控件中,这是我用来从一个DevExpress RichEdit复制到另一个的一些代码。你可以调整它以从另一个源复制(警告 - 它是几岁):
procedure AppendToRichEdit(const Source, Dest: TcxRichEdit) ;
var
RTFStream: TEditStream;
Stream : TMemoryStream;
function EditStreamReader(dwCookie: DWORD; pBuff: Pointer; cb: LongInt; pcb: PLongInt): DWORD; stdcall;
begin
Result := $0000;
try
pcb^ := TStream(dwCookie).Read(pBuff^, cb);
except
Result := $FFFF;
end;
end;
begin
Stream := TMemoryStream.Create;
try
Source.Lines.SaveToStream(Stream) ;
Stream.Position := 0;
RTFStream.dwCookie := DWORD(Stream) ;
RTFStream.dwError := $0000;
RTFStream.pfnCallback := @EditStreamReader;
Dest.InnerControl.Perform(EM_STREAMIN, SFF_SELECTION or SF_RTF or SFF_PLAINRTF, LPARAM(@RTFStream)) ;
if RTFStream.dwError <> $0000 then
raise Exception.Create('Error appending RTF data.') ;
finally
Stream.Free;
end;
end;