使用delphi 7 TRichEdit组件,正在通过复制和粘贴从msword文档中导入RTF数据,但是如果数据包含在框中,则无法正确显示,即
Using delphi 7 TRichEdit component, RTF data is being imported from a msword document through copy and paste, but if data is contained in a box, it is not displaying correctly i.e.
请协助
推荐答案尝试使用以下内容,它应该将 TRichEdit 类到版本4.1。但是我不知道Delphi 7是否支持插入的类,因此只需尝试粘贴以下代码并尝试构建项目。如果它可以编译,则可以放置 TRichEdit 组件并运行项目,您应该获得RichEdit 4.1。 / p>
Try to use the following, it should subclass the TRichEdit class to version 4.1. However I don't know if Delphi 7 supports interposed classes, so just try to paste the following code and try to build the project.If it compiles then if you put a TRichEdit component and run the project you should get RichEdit 4.1.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, RichEdit; type TRichEdit = class(ComCtrls.TRichEdit) protected procedure CreateParams(var Params: TCreateParams); override; end; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; FRichEditModule: THandle; implementation {$R *.dfm} { TRichEdit } procedure TRichEdit.CreateParams(var Params: TCreateParams); const RichEditClassName = 'RICHEDIT50A'; RichEditModuleName = 'MSFTEDIT.DLL'; HideScrollBarsStyle: array[Boolean] of DWORD = (ES_DISABLENOSCROLL, 0); HideSelectionsStyle: array[Boolean] of DWORD = (ES_NOHIDESEL, 0); begin if FRichEditModule = 0 then begin FRichEditModule := LoadLibrary(RichEditModuleName); if FRichEditModule <= HINSTANCE_ERROR then FRichEditModule := 0; end; inherited CreateParams(Params); CreateSubClass(Params, RichEditClassName); Params.Style := Params.Style or HideScrollBarsStyle[HideScrollBars] or HideSelectionsStyle[HideSelection]; Params.WindowClass.style := Params.WindowClass.style and not (CS_HREDRAW or CS_VREDRAW); end; initialization finalization if FRichEditModule <> 0 then FreeLibrary(FRichEditModule); end.更多推荐
Delphi 7 TRichTextEdit框中的文本无法正确显示
发布评论