{==============================================================================} { Example of new item type for RichView: } { - TRVBlendBitmapItemInfo } { (semi-transparent image) } { - TRVHotBlendBitmapItemInfo } { (semi-transparent image - hypertext link) } {------------------------------------------------------------------------------} { (c) Sergey Tkachenko (svt@trichview.com) } { http://www.trichview.com } {==============================================================================} unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, RVStyle, RVScroll, RichView, RVBlendBitmap, StdCtrls, ShellApi; type TForm1 = class(TForm) RichView1: TRichView; RVStyle1: TRVStyle; Image1: TImage; Image2: TImage; Label1: TLabel; procedure FormCreate(Sender: TObject); procedure RichView1Jump(Sender: TObject; id: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); var bmp: TBitmap; item: TRVHotBlendBitmapItemInfo; i: Integer; begin // Note: not very fast drawing, so do not use for large images // Note: you can save RVF documents with semitransparent images // (RVF reader must have RVBlendBMP.pas unit in order to // load such files) RichView1.AddBreak; RichView1.AddNLWTag('Example of Semitransparent Image',1,1,0); RichView1.AddBreak; for i := 0 to 10 do RichView1.AddNLWTag('some text',0,0,0); bmp := TBitmap.Create; bmp.Assign(Image1.Picture.Bitmap); item := TRVHotBlendBitmapItemInfo.CreateEx(RichView1.RVData, bmp, rvvaBaseline); item.Transparency := 100; item.HotTransparency := 0; // 0 - no transparency, // 255 - fully transparent (invisible) item.ParaNo := 1; RichView1.AddItem('', item); RichView1.AddNLWTag('www.trichview.com',4,1,0); for i := 0 to 10 do RichView1.AddNLWTag('some text',0,0,0); bmp := TBitmap.Create; bmp.Assign(Image2.Picture.Bitmap); item := TRVHotBlendBitmapItemInfo.CreateEx(RichView1.RVData, bmp, rvvaBaseline); item.Transparency := 200; item.HotTransparency := 100; item.ParaNo := 1; RichView1.AddItem('', item); RichView1.AddNLWTag('www.trichview.com',4,1,0); for i := 0 to 10 do RichView1.AddNLWTag('some text',0,0,0); RichView1.Format; end; procedure TForm1.RichView1Jump(Sender: TObject; id: Integer); begin ShellExecute(0, 'open', 'http://www.trichview.com', nil, nil, SW_SHOW) end; end.