Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
2-1138833851
BREVIS
2006-02-02 01:44
2006.02.19
Как разбить (TColor) цвет на RGB составляющие?


1-1137859614
5463
2006-01-21 19:06
2006.02.19
Закладки


3-1135237012
krb
2005-12-22 10:36
2006.02.19
Импорт из db-Vista


1-1137570215
ОлеЛу
2006-01-18 10:43
2006.02.19
компиляция без IDE


2-1138979999
User2
2006-02-03 18:19
2006.02.19
коннект с SQL SERVER по сети




   Наверх