richedit使用问题 300分(300分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
附加功能 将问题提前
 
cAkk:

RX我以前用过,rxrichedit确实是个好东西。我感觉你这个问题并不困难,也许是我没理解?
你看看下面的代码能不能完成你的要求。

unit rtf;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, RxRichEd, ComCtrls, ExtCtrls,Clipbrd;

type
TForm1 = class(TForm)
RxRichEdit1: TRxRichEdit;
Image1: TImage;
Button3: TButton;
Button4: TButton;
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
SavedPlace,SavedLength:Integer;

implementation

{$R *.DFM}


procedure TForm1.Button4Click(Sender: TObject);
var
i:integer;
s:string;
begin
{本过程是做文本变图形的}
s:='THIS STRING WILL BE REPLACED!'; //要找的串
i:=RxRichEdit1.FindText(s,0,length(RxRichEdit1.Text),[]);
if i<>-1 then begin
SavedPlace:=i;
SavedLength:=length(s); //存储要替换的位置和长度
RxRichEdit1.SelStart:=i;
RxRichEdit1.SelLength:=length(S);
RxRichEdit1.SelAttributes.Hidden:=true;//rxrichedit的新特性,可以隐藏
Clipboard.Assign(Image1.Picture.Bitmap);
RxRichEdit1.SelStart:=i+length(S);
RxRichEdit1.PasteFromClipboard;//在串尾加入图形
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
{本过程是做图形变文本的}
with RxRichEdit1 do begin
SelStart:=SavedPlace;
SelLength:=SavedLength;
SelAttributes.Hidden:=False; //恢复被隐藏的文本
SelStart:=SavedPlace+SavedLength;
SelLength:=1;
if SelectionType=[StObject] then
ClearSelection; //清除图形
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
RxRichEdit1.Lines.LoadFromFile('c:/1.rtf');
end;

end.
 
我正研究做一个图文混排的文字处理工具,
那位老兄能给我发一个rxrichedit,让我也借鉴借鉴。
谢谢!
 
Delphi Form 的文件内容可以以文本的方式浏览,
在 Delphi 5 中更可以将窗体文件保存成纯文本的格式,
这种方式会有帮助吗?
有趣的现象是 Acdsee 可以浏览 Delphi 的窗体文件中的图象。

在 MS SQL Server 中保存图片或是其他 Graphic 类型的数据时,
如果在一定尺寸内,亦可不使用 WriteText 方法,而是在程序中
直接将需要保存的数据流转换成字符串的形式(0xFFEE00FFAA....),
使用 SQL 语句直接写入,我曾经在程序中这么做过。其实这也可以
看作是一种文件的读写。

实在不行,亦可将文本和图象分段保存,读取时分段读取,
例如保存好的文件的前半部分是 Rtf 原来的内容,后半部分是图象的
内容,或者颠倒。如果前半部分是 Rtf,后面是图象,那么你需要了解
Rtf 文件的格式,知道前半部分在何处结束;如果需要保存的图象都是
TBitmap 类型的,那么处理起来就会方便得多—— Bitmap 的头信息中
有尺寸信息,使用 TBitmap 读取时,它会仅仅读取需要读取的信息,
而 Stream 的 Position 会停留在正确的位置,如果是其他类型的就不能
保证这一点,如 TJpegImage。

使用自定义的文件格式将会更有助于解决问题,只要文件的格式设计合理,
您可以保存任何需要保存的数据。
 
去下个rxlib2.75吧,不错的东西
Cakk跑哪去了,我的答案行不行啊。
 
接受答案了.
 
后退
顶部