我试图在Delphi XE2 Starter Edition中的TRichEdit控件中使用Tables.(换句话说,我没有XE2的源代码 - 但我确实有TurboDelphi的源代码).我知道默认的RichEdit控件不使用支持表的MS RichEdit版本,因此我将其子类化为使用MS RichEdit v4.1,如此处1和此处所述6,并且还模拟了JEDI TjvRichEdit中的代码.(为简便起见,我没有包括代码段,用于确定DLL的其他比4.1版的RichEdit版本号,即我从JEDI借来的.的简化版本在此示出).
MSDN博客2指出,支持RTF表的Windows消息是MS RichEdit 4.1版的未记录功能,并且自Windows XP SP2起EM_INSERTTABLE消息可用.有关可用版本的更多信息,请参见此处3.
注释下面这个博客2,发布者:大卫金德于2008年09月26日,国家他能得到EM_INSERTTABLE消息的RichEdit 4.1版配合使用,这是我下面所示相同的代码(除了他没有用Delphi ).
有关EM_INSERTTABLE消息的详细信息,并支持它的结构,请参阅MSDN文档4(哪个国家,他们与Windows 8进行了介绍,但它清楚地预先日,通过至少两个主要的OS版本).还要注意的是结构的定义(一个或多个)已经有所改变,因为穆雷说他的博客2在2008年我已搜索到互联网的两端,并不能找到一个MS richedit.h版本与RichEdit中4.1去,并包含"没有文档的"结构TABLEROWPARMS和TABLECELLPARMS,因为它们当时存在,因此我仅限于MSDN文档,因为它们存在于Win8 4和Murray的博客2中,因为它们据称存在于Win XP和Win7中.
这是我的自定义RichEdit:
unit MyRichEdit;
//Customized RichEdit to use MS RichEdit v4.1
// Some stuff borrowed from Michael Lam's REdit (ca. 1998), found on the Torry page.
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
StdCtrls, ComCtrls, Printers, RichEdit;
type
{TableRowParms}
PTableRowParms …Run Code Online (Sandbox Code Playgroud)