Кто-нибудь может объяснить, в чем смысл этого кода?
procedure DrawImage(ImageList: TCustomImageList; Index: Integer; Canvas: TCanvas; X, Y: Integer; Style: Cardinal; Enabled: Boolean);
procedure DrawDisabledImage(ImageList: TCustomImageList; Canvas: TCanvas; X, Y, Index: Integer);
{$if CompilerVersion >= 21}
var
Params: TImageListDrawParams;
begin
FillChar(Params, SizeOf(Params), 0);
Params.cbSize := SizeOf(Params);
Params.himl := ImageList.Handle;
Params.i := Index;
Params.hdcDst := Canvas.Handle;
Params.x := X;
Params.y := Y;
Params.fState := ILS_SATURATE;
ImageList_DrawIndirect(@Params);
{$else}
begin
TCustomImageListCast(ImageList).DoDraw(Index, Canvas, X, Y, Style, False);
{$ifend}
end;
begin
if Enabled then
TCustomImageListCast(ImageList).DoDraw(Index, Canvas, X, Y, Style, Enabled)
else
DrawDisabledImage(ImageList, Canvas, X, Y, Index);
end;
С какой целью вызывается ImageList_DrawIndirect вместо стандартного ImageList.DoDraw?
С уважением, Vasilisk