Получить иконки

Доброго времени суток, все!
Подскажите, пожалуйста, как получить иконку, с которой ассоциирован
определенный тип файла?
← Сентябрь 2004 → | ||||||
3
|
5
|
|||||
---|---|---|---|---|---|---|
7
|
||||||
21
|
||||||
За последние 60 дней ни разу не выходила
Сайт листа:
http://codeguru.ru
Открыт:
21-09-2003
Пре-модерация: Нет
Адрес для писем в лист: comp.soft.prog.prog-list@subscribe.ru
Адрес
модератора: comp.soft.prog.prog-owner@subscribe.ru
Доброго времени суток, все!
Подскажите, пожалуйста, как получить иконку, с которой ассоциирован
определенный тип файла?
Доброго времени суток, Victor.
Вы писали 10 сентября 2004 г., 15:37:33
на тему "Получить иконки"
А если на Делфе 7?
Здравствуйте !
Думаю, почти так же.
SHGetFileInfo - API-функция. То есть хоть в делфе, хоть в VB, хоть в VC -
одно и то же. ZeroMemory - просто "обнуляет" блок памяти (вообще, это
псевдоним RtlZeroMemory). В делфи должен быть аналог.
Как уже было сказано, в поле hIcon структуры SHFILEINFO будет возвращен
дескриптор иконки. То есть, собственно, дальше и делать то ничего не надо -
хочешь - рисуй ее при помощи DrawIcon или DrawIconEx, хочешь - в static-
control засунь, в заголовок окна, в список, или еще куда.
--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 3538
Возраст листа : 355 (дней)
Количество подписчиков : 470
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/227418
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.prog.prog
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать: mailto:comp.soft.prog.prog--unsub@subscribe.ru?subject=comp.soft.prog.prog
http://subscribe.ru/ http://subscribe.ru/feedback
Доброго времени суток, Victor.
Вы писали 10 сентября 2004 г., 15:37:33
на тему "Получить иконки"
А если на Делфе 7?
Здравствуйте, Денис.
Вы писали 11 сентября 2004 г., 14:38:21:
Пример.
Отрисуем иконку блокнота на нашей форме.
uses ..., ShellApi,.....;
var
b :_ShFileInfo;
h :HDC;
begin
// заполним структуру b :_ShFileInfo инфой файла блокнота
SHGetFileInfo(PChar('c:\windows\notepad.exe'), 0, b, SizeOf(^b), SHGFI_Icon);
// для нашго примера - получим хендл девайса формы - для отрисовки
h := GetDC(Handle);
// рисуем
DrawIcon(h, 0, 0, b.hIcon);
end;
Доброго времени суток, Шешунов.
Вы писали 16 сентября 2004 г., 20:48:48
на тему "Получить иконки"
Спасибо! Работает!
Здравствуйте !
Буквально дословно из MSDN :
SHFILEINFO sfi;
HIMAGELIST hil;
ZeroMemory(&sfi,sizeof(sfi));
hil = SHGetFileInfo(".zip",
FILE_ATTRIBUTE_NORMAL,
&sfi,
sizeof(sfi),
SHGFI_USEFILEATTRIBUTES|SHGFI_ICON);
// hil now contains the handle to the system image list
// containing the large icon images.
// sfi.hIcon contains the large icon for the file.
То есть в hil получен дескриптор системмного image list-а,
а в sfi.hIcon - дескриптор нужной иконки.
Быть может, в sfi.iIcon - соответствующий индекс иконки в
листе hil.
Кстати, иконку в sfi.hIcon надо будет потом убить вызовом
DestroyIcon.
--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 3532
Возраст листа : 354 (дней)
Количество подписчиков : 471
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/227097
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.prog.prog
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать: mailto:comp.soft.prog.prog--unsub@subscribe.ru?subject=comp.soft.prog.prog
http://subscribe.ru/ http://subscribe.ru/feedback