NO HAY CÓDIGO FUENTE git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.TRichView@1 b34d35ef-135b-4489-b9d1-9916e9c25524
128 lines
4.4 KiB
ObjectPascal
128 lines
4.4 KiB
ObjectPascal
{*******************************************************}
|
||
{ }
|
||
{ RichView }
|
||
{ Custom hints demo }
|
||
{ For Delphi 2009+ }
|
||
{ }
|
||
{ Copyright (c) Sergey Tkachenko }
|
||
{ svt@trichview.com }
|
||
{ http://www.trichview.com }
|
||
{ }
|
||
{*******************************************************}
|
||
|
||
// Property settings:
|
||
// RichViewEdit1.ShowHints = True
|
||
// rvoShowItemHints in RichViewEdit1.Options
|
||
// RichViewEdit1.CustomHint = BalloonHint1
|
||
|
||
unit Unit1;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, StdCtrls, ImgList, RVStyle, RVScroll, RichView, RVEdit, CRVData, RVItem,
|
||
Jpeg, GifImg, PngImage, RVTypes, ExtCtrls;
|
||
|
||
type
|
||
TForm1 = class(TForm)
|
||
BalloonHint1: TBalloonHint;
|
||
ImageList1: TImageList;
|
||
RichViewEdit1: TRichViewEdit;
|
||
RVStyle1: TRVStyle;
|
||
Image1: TImage;
|
||
Image2: TImage;
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure RichViewEdit1ItemHint(Sender: TCustomRichView;
|
||
RVData: TCustomRVData; ItemNo: Integer; var HintText: string);
|
||
private
|
||
{ Private declarations }
|
||
public
|
||
{ Public declarations }
|
||
end;
|
||
|
||
var
|
||
Form1: TForm1;
|
||
|
||
implementation
|
||
|
||
{$R *.dfm}
|
||
|
||
procedure TForm1.FormCreate(Sender: TObject);
|
||
var gr: TGraphic;
|
||
begin
|
||
RichViewEdit1.Clear;
|
||
RichViewEdit1.AddNL('Custom Hints', 1, 1);
|
||
RichViewEdit1.AddNL('Hyperlinks: ', 0, 0);
|
||
RichViewEdit1.AddNLTag('trichview.com', 2, -1, Integer(StrNew('http://www.trichview.com')));
|
||
RichViewEdit1.SetItemExtraStrProperty(RichViewEdit1.ItemCount-1, rvespHint, 'TRichView homepage');
|
||
|
||
RichViewEdit1.AddNL('Hypertext pictures: ', 0, 0);
|
||
gr := TBitmap.Create;
|
||
gr.Assign(Image2.Picture.Graphic);
|
||
RichViewEdit1.AddHotPictureTag('', gr, -1, rvvaAbsMiddle, Integer(StrNew('http://en.wikipedia.org/wiki/Greek_alphabet')));
|
||
RichViewEdit1.SetItemExtraStrProperty(RichViewEdit1.ItemCount-1, rvespHint, 'Αβγ');
|
||
|
||
RichViewEdit1.AddNL('Pictures: ', 0, 0);
|
||
gr := TIcon.Create;
|
||
gr.Assign(Image1.Picture.Graphic);
|
||
RichViewEdit1.AddPictureEx( '', gr, -1, rvvaAbsMiddle);
|
||
RichViewEdit1.SetItemExtraStrProperty(RichViewEdit1.ItemCount-1, rvespHint, 'Солнце'); // "Sun" in Russian
|
||
|
||
RichViewEdit1.Format;
|
||
end;
|
||
{------------------------------------------------------------------------------}
|
||
function GetGraphicFormatName(gr: TGraphic): String;
|
||
begin
|
||
if gr is TBitmap then
|
||
Result := 'Windows bitmap'
|
||
else if gr is TIcon then
|
||
Result := 'Icon'
|
||
else if gr is TMetafile then
|
||
Result := 'Windows metafile'
|
||
else if gr is TJpegImage then
|
||
Result := 'JPEG image'
|
||
else if gr is TGifImage then
|
||
Result := 'GIF image'
|
||
else if gr is TPngImage then
|
||
Result := 'PNG image'
|
||
else
|
||
Result := 'Unknown image format';
|
||
end;
|
||
{------------------------------------------------------------------------------}
|
||
{ OnItemHint event }
|
||
procedure TForm1.RichViewEdit1ItemHint(Sender: TCustomRichView;
|
||
RVData: TCustomRVData; ItemNo: Integer; var HintText: string);
|
||
var DefaultHint, Target, PicDetails: String;
|
||
i, Tag: Integer;
|
||
ItemName: TRVAnsiString;
|
||
Align: TRVVAlign;
|
||
Graphic: TGraphic;
|
||
begin
|
||
DefaultHint := HintText;
|
||
for i := 1 to Length(DefaultHint) do
|
||
if DefaultHint[i]='|' then
|
||
DefaultHint[i] := ' ';
|
||
if DefaultHint<>'' then
|
||
DefaultHint := ': '+DefaultHint;
|
||
if (RVData.GetItemStyle(ItemNo)=rvsPicture) or
|
||
(RVData.GetItemStyle(ItemNo)=rvsHotPicture) then begin
|
||
// image
|
||
RVData.GetPictureInfo(ItemNo, ItemName, Graphic, Align, Tag);
|
||
if RVData.GetItemStyle(ItemNo)=rvsHotPicture then
|
||
Target := '; Target: '+PChar(Tag)
|
||
else
|
||
Target := '';
|
||
PicDetails := Format('%s %d×%d', [GetGraphicFormatName(Graphic),
|
||
Graphic.Width, Graphic.Height]);
|
||
HintText := 'Image'+DefaultHint+'|'+PicDetails+Target+'|1';
|
||
end
|
||
else if RVData.GetItem(ItemNo).GetBoolValueEx(rvbpJump, RVStyle1) then begin
|
||
// hyperlink
|
||
Target := 'Target: '+PChar(RVData.GetItemTag(ItemNo));
|
||
HintText := 'Hyperlink'+DefaultHint+'|'+Target+'|0';
|
||
end;
|
||
end;
|
||
|
||
end.
|