[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]
Why not use the TRichEdit Control to do the work for you? I created an
extended RichEdit control with a RTFText property that you can read and
write to. To do conversions, just set the text property of the control,
and read the RTFtext and vice versa.
TAXRichEdit = class(TRichEdit)
private
{ Private declarations }
FStream: TMemoryStream;
procedure SetRTFText(RichText: string);
function GetRTFText: string;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property RTFText: string read GetRTFText write SetRTFText;
end;
implementation
constructor TAXRichEdit.Create(AOwner: TComponent);
begin
Inherited Create(AOwner);
FStream := TMemoryStream.Create;
end;
destructor TAXRichEdit.Destroy;
begin
FStream.Free;
inherited Destroy;
end;
procedure TAXRichEdit.SetRTFText(RichText: string);
begin
FStream.Clear;
FStream.WriteBuffer(RichText[1], Length(RichText));
FStream.Position := 0;
Lines.LoadFromStream(FStream);
end;
function TAXRichEdit.GetRTFText: string;
begin
FStream.Clear;
Lines.SaveToStream(FStream);
Result := PChar(FStream.Memory);
end;
HTH,
Robert Cram
rcram@knoware.nl
[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]