Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Отрисовка иконок в VTV / 4 сообщений из 4, страница 1 из 1
23.09.2019, 18:20
    #39865830
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отрисовка иконок в VTV
Кто-нибудь может объяснить, в чем смысл этого кода?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
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
...
Рейтинг: 0 / 0
23.09.2019, 19:27
    #39865852
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отрисовка иконок в VTV
Посмотри в репо, когда это было добавлено, может, в коммит мессаге что-то полезное будет
...
Рейтинг: 0 / 0
23.09.2019, 19:50
    #39865868
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отрисовка иконок в VTV
_Vasilisk_,

в моем VTV такого нет... :(
...
Рейтинг: 0 / 0
23.09.2019, 20:49
    #39865891
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отрисовка иконок в VTV
Василий 2Посмотри в репо, когда это было добавлено, может, в коммит мессаге что-то полезное будет Нашел . Говорят эмбаркадеро поломало отрисовку неактивных сообщений. По истории изменений стабильно увеличивали CompilerVersion

ёёёёёв моем VTV такого нет... :(И это хорошо. Ибо оно не работает. Флаг ILS_SATURATE можно устанавливать только для 32-битных рисунков. Для обычных получается треш.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Отрисовка иконок в VTV / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]