Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить иконку файла, каталога в Windows XP


Maxim K ©   (2003-07-05 01:18:00) 

Как получить иконку файла, каталога в Windows XP. Функция ExtractAssociatedIcon(HInstance,PChar("c:\windows\notepad.exe"),IconIndex) возвращает нулевое значение. Получение иконки нужно для отображения дерева каталогов(например как в проводнике).


Maxim K   (2003-07-05 14:42:00) [1]

Извините что напряг, но я нашел немного другой путь:
============ //Author: Pascal Enz
uses
ShellApi;

function GetAssociatedIcon(const AExtension: string; ASmall: Boolean): HIcon;
var
Info: TSHFileInfo;
Flags: Cardinal;
begin
if ASmall then
Flags := SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES
else
( PChar(AExtension)

Извините что напряг, но я нашел немного другой путь:
============ //Author: Pascal Enz
uses
ShellApi;

function GetAssociatedIcon(const AExtension: string; ASmall: Boolean): HIcon;
var
Info: TSHFileInfo;
Flags: Cardinal;
begin
if ASmall then
Flags := SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES
else
Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES;

SHGetFileInfo(PChar(AExtension), FILE_ATTRIBUTE_NORMAL, Info,
SizeOf(TSHFileInfo), Flags);
Result := Info.hIcon;
end;
============

Без проблем работает с файлами, директориями, корневыми дисками. Нашел по адресу http://delphiplus.nagano.ru/articles/advice/file_icon/index.html.Может комунить понадобиться.


Maxim K   (2003-07-05 14:17:00) [2]

DefaultIcon = %SystemRoot%\System32\shell32.dll,3 ... попробовал IconIndex = 3, тот же эффект


Cobalt   (2003-07-05 14:08:00) [3]

1) А какой у тебя IconIndex?
2) См. HKEY_CLASSES_ROOT\Directory


Наверх

Титульная страница Поиск, карта сайта Написать письмо