![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хочу системные иконки! Ну очень хочу. [D6, Win2k]
Вопрошающий © (2001-12-19 17:34:00)ImageListHandle := SHGetFileInfo("C:\", 0, FileInfo, SizeOf(FileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
SendMessage(TreeView1.Handle, TVM_SETIMAGELIST, TVSIL_NORMAL, ImageListHandle);
Так я получаю и устанавливаю в TreeView список системных иконок.
Проблема в том, что этот список не содержит некоторые из тех иконок которые мне нужны.
А нужны мне иконки всех дисков(локальных, сетевых, floppy, RAM, CD-ROM) плюс иконки папок.
Вопрос: как мне эти иконки добыть с учетом того, что должно работать и в Win9x и в WinNT?
Дмитрий (2001-12-20 10:40:00) [1]А вообще - SHGetFileInfo. Возьми словарь и уясни все флаги, передаваемые в эту ф.
Дмитрий (2001-12-20 10:39:00) [2]Не совсем то, но в тему (копирайт проставь), вдруг пригодится. Выдирает маленькие иконки, ассоциированные с типом файла.
function GetSmallIcon(FileName: string): TIcon;
var FileInfo: TShFileInfo;
pidl : PItemIdList;
i : integer;
ImageList: TImageList;
begin
Result:=TIcon.Create;
ImageList:=TImageList.Create(nil);
FillChar(FileInfo, Sizeof(FileInfo), #0);
ImageList.ShareImages:=true;
ImageList.Handle:=SHGetFileInfo(
PChar(FileName),
SFGAO_SHARE,
FileInfo,
sizeof(FileInfo),
SHGFI_SMALLICON or SHGFI_SYSICONINDEX
);
ImageList.GetIcon(FileInfo.iIcon, Result);
ImageList.Free;
end;
Вопрошающий (2001-12-20 07:27:00) [3]Сори!!! 2-й пункт последней месаги для ValeraVV © конечно же.
Вопрошающий (2001-12-20 07:23:00) [4]>Sir Kot-Werwolf © Мне надо именно из системы их достать.
>Sir Kot-Werwolf © Исходники сейчас спосмотрю, код который я выше написал взял из примера VirtualListView. Использовать то что есть можно, но я хочу свой компонент написать.
>Всем вместе И вот что интересно: вопрос я вчера из дома задавал, там у меня Win2000 и список полученых иконок, как я уже писал неполный, сейчас на работе из Win98 попробовал - выдает все иконки...
Никто не в курсе почему так происходит?
И еще: функцию LoadIcon можно например вот так использовать:
MyIcon.Handle := LoadIcon(0, IDI_WINLOGO);
Есть ли какие константы типа IDI_WINLOGO чтобы иконки дисков и папок доставать? Я хелп облазил но не нашел.
ValeraVV (2001-12-20 06:28:00) [5]В D6 исходники ShellControls (что на вкладке Samples) в ломы посмотреть? Или вообще их использовать просто
Sir Kot-Werwolf (2001-12-19 23:37:00) [6]А тебе обязательно их вызывать? Может быть проще скопировать экран и нарезать оттудова картинок? ;)
Вопрошающий (2001-12-19 20:17:00) [7]Люди, ну подскажите что-нибудь, плиз.
Может я неправельно вопрос поставил? Мне нужны иконки которыми Explorer диски и папки показывает. В самом Explorer`е их нет, проверял.