TImageEnMView.OnImageDraw
Declaration
property OnImageDraw: TIEImageDrawEvent;
Description
Occurs whenever an image is painted.
Note:
◼OnImageDraw and
OnImageDraw2 are identical, except that
OnImageDraw2 includes a
ThumbRect parameter to return the rectangle of the image thumbnail
◼You can use
ThumbWidth and
ThumbHeight to get the area of the thumbnail box
// Display the image index and sizes on bottom of the thumbnail
// Ensure you have set the BottomGap property
procedure TForm1.ImageEnMView1ImageDraw(Sender: TObject; idx: Integer; Left, Top: Integer; Canvas: TCanvas);
begin
with canvas do
begin
Font.Height := 15;
Font.Color := clWhite;
TextOut(Left, Top + ImageEnMView1.ThumbHeight - ImageEnMView1.BottomGap + 2, IntToStr(idx));
TextOut(Left, Top, IntToStr(ImageEnMView1.ImageWidth[idx]) + 'x' + IntToStr(ImageEnMView1.ImageHeight[idx]));
end;
end;
// Output the image size in the bottom left of the thumbnail (with a semi transparent background)
procedure TMainForm.ImageEnMView1ImageDraw2(Sender: TObject; idx, Left, Top: Integer; ImageRect: TRect; Canvas: TCanvas);
const
Right_Margin = 8;
Bottom_Margin = 8;
Text_Margin = 2;
var
x1, y1, x2, y2: integer;
iec: TIECanvas;
ss: string;
sz: TSize;
begin
ss := format( '%d x %d', [ ImageEnMView1.ImageWidth[idx], ImageEnMView1.ImageHeight[idx] ]);
// Create our TIECanvas from the regular TCanvas
iec := TIECanvas.Create( Canvas );
try
iec.Font.Size := 8;
iec.Font.Color := clWhite;
iec.Font.Style := [fsBold];
sz := iec.TextExtent( ss );
x1 := Left + ImageEnMView1.ThumbWidth - sz.cx - Right_Margin;
y1 := Top + ImageEnMView1.ThumbHeight - sz.cy - Bottom_Margin;
x2 := Left + ImageEnMView1.ThumbWidth - Right_Margin;
y2 := Top + ImageEnMView1.ThumbHeight - Bottom_Margin;
iec.Brush.Color := clBlack;
iec.Brush.Style := bsSolid;
iec.Brush.Transparency := 196;
iec.Pen.Style := psClear;
iec.Rectangle( x1 - Text_Margin, y1, x2 + Text_Margin, y2 );
iec.TextOut( x1, y1, ss );
finally
iec.Free();
end;
end;