Вы не говорите, какова цель этого, и есть несколько способов получить значки, и один метод может быть лучше, чем другой, в зависимости от цели.
Однако, для извлечения любого количества «больших» (32x32) и / или «маленьких» (16x16) значков * из произвольного файла , используйте функцию ExtractIconEx
, Это позволяет извлечь один или несколько значков любого из этих двух стандартных размеров из файла значков (.ico), EXE или DLL. Файл значка может содержать несколько изображений, и эта функция позволит вам получить все из них.
Функция запишет в массив дескрипторов, каждый из которых вы можете назначить свойству Handle
экземпляра TIcon
. Затем вы можете использовать TIcon
методы , как обычно, если бы вы загружали TIcon любым другим способом. Обратите внимание, что новшеством в Delphi XE является возможность его простого копирования в растровое изображение с помощью метода Assign . В этой статье также показано, как получить доступ ко всем стандартным (встроенным / стандартным) значкам Windows , если это то, что вам нужно.
(Примечание: я думаю, класс TIcon
позволяет загружать из файла его метод LoadFromFile
- этого, похоже, не хватает в документации, но я почти уверен, что он существует . Из памяти загружается только один значок.)
(*) На самом деле, «большие» и «маленькие» банки
отличаться от 32x32 и 16x16: используйте
GetSystemMetrics
функция с SM_CXICON
,
SM_CYICON
, SM_CXSMICON
и
SM_CYSMICON
флаги, чтобы узнать
Размеры каждого типа.