Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Вниз

Хочу системные иконки! Ну очень хочу. 


Вопрошающий   (2001-12-19 17:34) [0]

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-19 20:17) [1]

Люди, ну подскажите что-нибудь, плиз.
Может я неправельно вопрос поставил? Мне нужны иконки которыми Explorer диски и папки показывает. В самом Explorer`е их нет, проверял.



Sir Kot-Werwolf   (2001-12-19 23:37) [2]

А тебе обязательно их вызывать? Может быть проще скопировать экран и нарезать оттудова картинок? ;)



ValeraVV   (2001-12-20 06:28) [3]

В D6 исходники ShellControls (что на вкладке Samples) в ломы посмотреть? Или вообще их использовать просто



Вопрошающий   (2001-12-20 07:23) [4]

>Sir Kot-Werwolf © Мне надо именно из системы их достать.
>Sir Kot-Werwolf © Исходники сейчас спосмотрю, код который я выше написал взял из примера VirtualListView. Использовать то что есть можно, но я хочу свой компонент написать.
>Всем вместе И вот что интересно: вопрос я вчера из дома задавал, там у меня Win2000 и список полученых иконок, как я уже писал неполный, сейчас на работе из Win98 попробовал - выдает все иконки...
Никто не в курсе почему так происходит?
И еще: функцию LoadIcon можно например вот так использовать:
MyIcon.Handle := LoadIcon(0, IDI_WINLOGO);
Есть ли какие константы типа IDI_WINLOGO чтобы иконки дисков и папок доставать? Я хелп облазил но не нашел.



Вопрошающий   (2001-12-20 07:27) [5]

Сори!!! 2-й пункт последней месаги для ValeraVV © конечно же.



Дмитрий   (2001-12-20 10:39) [6]

Не совсем то, но в тему (копирайт проставь), вдруг пригодится. Выдирает маленькие иконки, ассоциированные с типом файла.

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 10:40) [7]

А вообще - SHGetFileInfo. Возьми словарь и уясни все флаги, передаваемые в эту ф.




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.022 c
4-57245           KLM                   2001-12-18 06:59  2002.02.18  
Доступ к файлу


3-57034           Besa                  2002-01-25 12:25  2002.02.18  
Дата и SQL


14-57190          fliz                  2001-12-27 16:50  2002.02.18  
Путин ONLINE


3-56977           Laimer                2002-01-23 13:13  2002.02.18  
TDBGrid


4-57254           ikar                  2001-12-19 10:10  2002.02.18  
Передача сообщения своей программе