用Delphi+RxRichEdit制作 文档编辑器 及 文档模板的设计思路 各位好。我打算用Delphi+RxRichEdit+Firebird制作 图文编辑器。请教各位在文档模板的设计中的开发思路。谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 網上有例子的unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ComCtrls, RxRichEd;typeTForm1 = class(TForm)Button1: TButton;RxRichEdit1: TRxRichEdit;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementationusesJPEG;{$R *.dfm}function ConvertBitmapToRTF(const Bitmap: TBitmap): string;varbi, bb: string;bis, bbs: Cardinal;achar: string[2];Buffer: string;I: Integer;typePWord = ^Word;beginGetDIBSizes(Bitmap.Handle, bis, bbs);SetLength(bi, bis);SetLength(bb, bbs);GetDIB(Bitmap.Handle, Bitmap.Palette, PChar(bi)^, PChar(bb)^);SetLength(Buffer, (Length(bb) + Length(bi)) * 2);i := 1;for bis := 1 to Length(bi) dobeginachar := IntToHex(Integer(bi[bis]), 2);PWord(@Buffer[i])^ := PWord(@achar[1])^;inc(i, 2);end;for bbs := 1 to Length(bb) dobeginachar := IntToHex(Integer(bb[bbs]), 2);PWord(@Buffer[i])^ := PWord(@achar[1])^;inc(i, 2);end;Result := '{\rtf1 {\pict\dibitmap ' + Buffer + ' }}';end;procedure InsertBitmapIntoRxRichEdit(const Bitmap: TBitmap; const RxRichEdit:TRxRichEdit); overload;beginRxRichEdit.SelText := ConvertBitmapToRTF(Bitmap);RxRichEdit.SelLength := 0;RxRichEdit.SelStart := RxRichEdit.SelStart + 1;end;procedure InsertBitmapIntoRxRichEdit(const GraphicFileName: string; constRxRichEdit: TRxRichEdit); overload;varBitmap: TBitmap;Graphic: TPicture;beginGraphic := TPicture.Create;tryGraphic.LoadFromFile(GraphicFileName);if Graphic.Graphic is TBitmap thenBitmap := Graphic.BitmapelsebeginBitmap := TBitmap.Create;Bitmap.Assign(Graphic.Graphic);end;InsertBitmapIntoRxRichEdit(Bitmap, RxRichEdit);finallyif Bitmap <> Graphic.Bitmap thenFreeAndNil(Bitmap);FreeAndNil(Graphic);end;end;procedure TForm1.Button1Click(Sender: TObject);begin//InsertBitmapIntoRxRichEdit('C:\Temp\Untitled.bmp', RxRichEdit1);InsertBitmapIntoRxRichEdit('C:\Temp\Untitled-8.jpg', RxRichEdit1);RxRichEdit1.SetFocus;end;end. TWebBrowser的IPersistFile.Save,如何得知它已保存完成﹖ 被delphi的指针搞糊涂了 在delphi中如何将两个excel文件中的两个sheet合并到一个excel文件中 FastReport4.3 for delphi7中的相关问题 请教:如何判断软件已升级?用FTP下一个txt文件,读一下吗?如何在线升级呢? 图表与Access!!! 这个问题,大家来抢呀。100分呀。 又是tstringgrid!!!咳。。。 关于使用串行口接收传真机的信号的问题 很简单的问题? 急,如何读取网址中返回的数据 急,如何读取网址返回的数据
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, RxRichEd;type
TForm1 = class(TForm)
Button1: TButton;
RxRichEdit1: TRxRichEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses
JPEG;{$R *.dfm}function ConvertBitmapToRTF(const Bitmap: TBitmap): string;
var
bi, bb: string;
bis, bbs: Cardinal;
achar: string[2];
Buffer: string;
I: Integer;
type
PWord = ^Word;
begin
GetDIBSizes(Bitmap.Handle, bis, bbs);
SetLength(bi, bis);
SetLength(bb, bbs);
GetDIB(Bitmap.Handle, Bitmap.Palette, PChar(bi)^, PChar(bb)^);
SetLength(Buffer, (Length(bb) + Length(bi)) * 2);
i := 1;
for bis := 1 to Length(bi) do
begin
achar := IntToHex(Integer(bi[bis]), 2);
PWord(@Buffer[i])^ := PWord(@achar[1])^;
inc(i, 2);
end;
for bbs := 1 to Length(bb) do
begin
achar := IntToHex(Integer(bb[bbs]), 2);
PWord(@Buffer[i])^ := PWord(@achar[1])^;
inc(i, 2);
end;
Result := '{\rtf1 {\pict\dibitmap ' + Buffer + ' }}';
end;procedure InsertBitmapIntoRxRichEdit(const Bitmap: TBitmap; const RxRichEdit:
TRxRichEdit); overload;
begin
RxRichEdit.SelText := ConvertBitmapToRTF(Bitmap);
RxRichEdit.SelLength := 0;
RxRichEdit.SelStart := RxRichEdit.SelStart + 1;
end;procedure InsertBitmapIntoRxRichEdit(const GraphicFileName: string; const
RxRichEdit: TRxRichEdit); overload;
var
Bitmap: TBitmap;Graphic: TPicture;
begin
Graphic := TPicture.Create;
try
Graphic.LoadFromFile(GraphicFileName);if Graphic.Graphic is TBitmap then
Bitmap := Graphic.Bitmap
else
begin
Bitmap := TBitmap.Create;
Bitmap.Assign(Graphic.Graphic);
end;InsertBitmapIntoRxRichEdit(Bitmap, RxRichEdit);
finally
if Bitmap <> Graphic.Bitmap then
FreeAndNil(Bitmap);FreeAndNil(Graphic);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
//InsertBitmapIntoRxRichEdit('C:\Temp\Untitled.bmp', RxRichEdit1);
InsertBitmapIntoRxRichEdit('C:\Temp\Untitled-8.jpg', RxRichEdit1);
RxRichEdit1.SetFocus;
end;
end.