Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.03.2020, 23:02
Аватар для kuzduk
kuzduk kuzduk вне форума
Прохожий
 
Регистрация: 17.02.2012
Сообщения: 38
Репутация: 10
Вопрос Как добыть иконки с прозрачностями из exe dll?

Всем привет! такая проблема: нужно иконки из dll или exe отобразить на ListView. Накидал программку в которой иконки из dll или exe сначала подгружаются в ImageList потом по индексам отображаются в ListView. Но отображаются без полупрозрачностей иконовских "с грубыми краями"! Как прозрачность иконок отобразить?

проект: https://yadi.sk/d/lHTplyOJxJf5sw




Также не вкурил как добывать иконки размером 16х16? - это второй вопрос.

Заранее благодарен!

Последний раз редактировалось kuzduk, 16.03.2020 в 12:40.
Ответить с цитированием
  #2  
Старый 01.07.2020, 08:03
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию

Насчет извлечения иконок нужного размера рекомендую функцию 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  
Старый 01.07.2020, 21:24
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,056
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Добавлю про прозрачность. Вся проблема с прозрачностью в том, что по умолчанию ImageList не поддерживает нативную прозрачность. Для того, что бы добавить иконку с прозрачностью, надо сначала создать из нее маску и потом добавлять иконку вместе с этой маской.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Leo_nid (14.11.2020)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:32.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter