Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: CL | DM;

Вниз

Иконки зарегистрированных типов   Найти похожие ветки 

 
Neo Trinitron ©   (2006-01-30 16:34) [0]

Стоит задача получить иконки зарегистрированных типов файлов. Эта тема была, но её удалили, так что в поиск не отправляйте пожалуйста - я оттуда.


 
begin...end ©   (2006-01-30 16:44) [1]

ExtractAssociatedIcon ?


 
Neo Trinitron ©   (2006-01-30 17:41) [2]

Дело обстоит иначе: Есть имена файлов (не реальные файлы, только их имена и расширения). Необходимо отобразить каждое имя файла с иконкой соответствующего типа.


 
Gero ©   (2006-01-30 22:27) [3]

Открываешь

HKEY_CLASSES_ROOT\.расширение

Читаешь параметр по умолчанию.

Затем открываешь HKEY_CLASSES_ROOT\этот_парамерт\DefaultIcon

Читаешь уже этот параметр по умолчанию. Это и будет путь к иконке для нужного расширения. Естественно, любого раздела из перечисленных может не оказаться.


 
kami ©   (2006-01-30 22:52) [4]

Не помню, кто мне подсказал (ветка не сохранилась), но еще раз ему большое спасибо (:

const
 Flag = SHGFI_ADDOVERLAYS or
   SHGFI_ICON or
   SHGFI_LARGEICON or
   SHGFI_SYSICONINDEX or
   SHGFI_USEFILEATTRIBUTES or
   SHGFI_TYPENAME;// убрать самому, если тип файла не нужен
var
 fi: _SHFILEINFOA;
//======================================
 CoInitialize(nil);
 SystemImageList.ShareImages:=True;
 SystemLargeImageList.Handle := SHGetFileInfo(
   PChar(""),
   0,
   fi,
   SizeOf(TSHFileInfo),
   Flag);

// в нужном месте:

 SHGetFileInfo(PChar(FileExtWithDot),
           FILE_ATTRIBUTE_NORMAL, // если нужна иконка папки, добавить or FILE_ATTRIBUTE_DIRECTORY
           fi,
           SizeOf(TSHFileInfo),
           Flag);
 l.imageIndex := fi.iIcon;  // l:TListItem


//Не забыть по окончании вызвать CoUninitialize


 
kami ©   (2006-01-30 22:54) [5]

kami ©   (30.01.06 22:52) [4]
большое спасибо (:


Дико извиняюсь :), должно быть "большое спасибо :"


 
Neo Trinitron ©   (2006-01-31 10:59) [6]

Огромное спасибо откликнувшимся. Только пришёл на работу, буду разбираться.


 
Johnmen ©   (2006-01-31 11:10) [7]

Можно в инете найти готовый компонент TSysImageList, с исходниками.
Разобраться в нём несложно. Или использовать не разбираясь глубоко...:)


 
Neo Trinitron ©   (2006-01-31 11:10) [8]

Дико извиняюсь, а какой модуль юзать?


 
kami ©   (2006-01-31 21:26) [9]

Neo Trinitron ©   (31.01.06 11:10) [8]
SHGetFileInfo объявлена в ShellAPI


 
kami ©   (2006-01-31 21:31) [10]

ну и эти объявления я не стал искать (хотя, есть и в OLE2) :

function  CoInitialize(lpReserved:Pointer):HResult;stdcall; external "ole32.dll";
procedure CoUninitialize;stdcall;external "ole32.dll";



Страницы: 1 вся ветка

Текущий архив: 2006.02.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.09 c
15-1138286565
Yegorchic
2006-01-26 17:42
2006.02.19
Конспект по теме "Решения треугольников"


15-1138626670
DSKalugin
2006-01-30 16:11
2006.02.19
Обналичка WebMoney


15-1138204596
Nic
2006-01-25 18:56
2006.02.19
Ну надо же :(


10-1114072163
Priest
2005-04-21 12:29
2006.02.19
Проблема с запуском COM сервера


1-1137868529
Volf_555
2006-01-21 21:35
2006.02.19
Как получить значение %ALLUSERSPROFILE% ?