如何使用TdxRichEditControl以编程方式添加和获取富文本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用TdxRichEditControl以编程方式添加和获取富文本?相关的知识,希望对你有一定的参考价值。

DevExpress不提供有关“如何使用TdxRichEditControl以编程方式添加和获取富文本”的文档。或者对我的程序中的嵌入式全文编辑器有任何建议吗?我在德尔福西雅图。

我的情况:

我正在创建一个程序,用户需要在其上进行富文本编辑(如粗体,斜体,下划线,字体大小,字体系列,段落对齐)。所以我推出了一个加载用户将进行更改的文本模型的DBRichEdit。因此,我需要将此模型文本应用于TdxRichEditControl以应用更改并将其再次返回到DBRichEdit以将其保存在数据库中。

答案

如果你只想将部分文本插入到控件中,这是我用来从一个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;

以上是关于如何使用TdxRichEditControl以编程方式添加和获取富文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式添加标签并以编程方式使用自动布局定位它

如何使用 c# 检查 OpenOffice 是不是以编程方式安装

如何以编程方式创建和使用 UIcollectionView?

如何使用 Swift 以编程方式分配 IBOutlet?

如何以编程方式使用 UIImageView Overlap 修复 UICollectionViewCell

如何以编程方式记录 PerformanceCounter