|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как добыть иконки с прозрачностями из exe dll?
Всем привет! такая проблема: нужно иконки из dll или exe отобразить на ListView. Накидал программку в которой иконки из dll или exe сначала подгружаются в ImageList потом по индексам отображаются в ListView. Но отображаются без полупрозрачностей иконовских "с грубыми краями"! Как прозрачность иконок отобразить?
проект: https://yadi.sk/d/lHTplyOJxJf5sw Также не вкурил как добывать иконки размером 16х16? - это второй вопрос. Заранее благодарен! Последний раз редактировалось kuzduk, 16.03.2020 в 12:40. |
#2
|
||||
|
||||
Насчет извлечения иконок нужного размера рекомендую функцию Windows.LoadImage(), сам ей пользовался, выдергивая из библиотеки конкретный вариант иконки. Пользовался ей так:
Код:
var IcoDLL: THandle; {...} IcoDLL:=LoadLibrary('icons.dll'); {путь к DLL с иконками} Image1.Picture.Icon.Handle:=LoadImage(IcoDLL, 'QWERTY', IMAGE_ICON, 256, 256, LR_SHARED); {здесь QWERTY - название ресурса иконки в DLL (можно посмотреть программой ResHacker), 256 и 256 - требуемые размеры иконки} По крайней мере, работает в Delphi 7, на более актуальных версиях не проверял. Ne timeas obscurum. Последний раз редактировалось Lothlorien, 01.07.2020 в 08:05. |
#3
|
|||
|
|||
Добавлю про прозрачность. Вся проблема с прозрачностью в том, что по умолчанию ImageList не поддерживает нативную прозрачность. Для того, что бы добавить иконку с прозрачностью, надо сначала создать из нее маску и потом добавлять иконку вместе с этой маской.
|
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Leo_nid (14.11.2020)
|