ورود

View Full Version : نمایش جدول فایلهای rtf در TRichEdit



polestar
یک شنبه 09 خرداد 1389, 12:17 عصر
همینطور که می دانید richEdit دلفی در نمایش فایلهای rtf مشکلات زیادی داره.بطور مثال اگر این فایلها حاوی جدول باشه اونو چپ به راست نشون میده.همچنین اگه متن ستونها بیشتر از عرض ستون باشه کلا جدول بهم میریزه برای خل این مشکل یه کامپوننت از TrichEdit درست کردم و برای اینکه از نسخه (dll) جدید richEdit استفاده کنه متد createParam اش رو به صورت زیر override کردم :

unit RichEdit5

interface

uses
SysUtils, Classes, Controls, StdCtrls, ComCtrls,messages,
Types,windows,Graphics,Forms,RichEdit;


type

TRichEdit5 = class(TRichEdit)
private
{ Private declarations }
protected
{ Protected declarations }
procedure CreateParams(var params: TCreateParams);Override;
public
{ Public declarations }
published
{ Published declarations }
property PasswordChar;
end;

procedure Register;

implementation

Var
FRichEditModule: THandle;

procedure TRichEdit5.CreateParams(var params: TCreateParams);
Const
RichEditModuleName = 'MSFTEDIT.DLL';
Begin
if FRichEditModule = 0 then
begin
FRichEditModule := LoadLibrary(RichEditModuleName);
if FRichEditModule <= HINSTANCE_ERROR then FRichEditModule := 0;
end;
Inherited CreateParams(Params);
CreateSubClass(Params, 'RichEdit50W');
params.WindowClass.style := params.WindowClass.style and not(CS_HREDRAW or CS_VREDRAW);
end;


procedure Register;
begin
RegisterComponents('my Components', [TRichEdit5]);
end;

Initialization

Finalization
if FRichEditModule <> 0 then FreeLibrary(FRichEditModule);
end.

ولی خوب چندتا مشکل ایجاد میشه ظاهرا یونیت richedit.pas با این نسخه مشکل داره. بطور مثال اگه یه متن به خاصیت Lines.Strings اون اختصاص بدیم خطای RichEdit Line Insertion error میده.کسی برای حل این مشکل راهی سراغ داره؟ ضمنا چون میخوام تو report builder ازش استفاده کنم نمیتونم از اکتیوکس های word استفاده کنم.