Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизИконки зарегистрированных типов Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c