Извлечение из EXE-файла иконки и рисование ее в TImage 2
uses ShellApi;
procedure TForm1.Button1Click(Sender: TObject);
var
IconIndex: word;
h: hIcon;
begin
IconIndex := 0;
h := ExtractAssociatedIcon(hInstance,
'C:\WINDOWS\NOTEPAD.EXE', IconINdex);
DrawIcon(Form1.Canvas.Handle, 10, 10, h);
end;
Here's the translation of the Delphi programming code into Russian:
Код программирования на языке Delphi, который извлекает иконку из исполняемого файла (.exe) и рисует ее на компоненте TImage.
Разбивка кода:
Директива uses ShellApi импортирует модуль ShellApi, который предоставляет функции для работы с оболочкой Windows.
Процедура Button1Click вызывается при клике кнопки с надписью "Button1". Она извлекает иконку из указанного исполняемого файла и рисует ее на канвасе формы.
Переменная IconIndex установлена в 0, что означает, что мы хотим извлечь первую иконку, связанную с исполняемым файлом.
Функция ExtractAssociatedIcon вызывается с следующими параметрами:
hInstance: Это handle к инстанции программы, которая передается в виде параметра при создании формы. Она используется для указания контекста, в котором извлекается иконка.
'C:\WINDOWS\NOTEPAD.EXE': Это путь к исполняемому файлу, из которого мы хотим извлечь иконку.
IconIndex: Это индекс иконки, которую мы хотим извлечь, установлен в 0 в этом случае.
Результат вызова функции ExtractAssociatedIcon хранится в переменной h, которая является handle к извлеченной иконке.
Процедура DrawIcon вызывается с следующими параметрами:
Form1.Canvas.Handle: Это handle к канвасу формы, где мы хотим рисовать иконку.
10: Это координата x верхнего левого угла иконки, измеренная от левой границы канваса.
10: Это координата y верхнего левого угла иконки, измеренная от верхней границы канваса.
h: Это handle к извлеченной иконке.
Код будет извлекать первую иконку, связанную с исполняемым файлом Notepad, и рисовать ее на координатах (10, 10) на канвасе формы.
Статья описывает процедуру извлечения иконки из EXE-файла с помощью функции ExtractAssociatedIcon и ее рисования на форме TImage в Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.