Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Извлечение иконки [D7, WinXP]


dimon_programmer ©   (2004-06-30 10:14:00) 

Здраствуйте мастера!
Подскажите как извлечь из ЛЮБОГО файла или папки иконку и добавать её в ImageList???


Nomolos   (2004-07-06 19:54:00) [1]

Для получения иконки 16x16 нужно использовать ExtractIconEx (информация есть в Platform SDK), но существует масса проблем, связаных с её использованием. Если Вам необходимо создать что-то вроде эксплорера файлов, то легче сделать так:
- добавить на форму ImageList
- установить его свойство ShareImages в True
- добавить в usesбиблиотеку ShellAPI
- в обработку OnCreate добавить переменную Info типа TShFileInfo, а в код команду ImageList1.Handle := SHGetFileInfo('', 0, Info, SizeOf(TShFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
- При создании новой ячейки списка (например, в TreeView) выполнить
SHGetFileInfo(PChar(FilePath), 0, Info, SizeOf(TShFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
NewNode.ImageIndex := Info.iIcon;


NewNode.SelectedIndex := Info.iIcon;

В FilePath должно содержаться полное имя (с путём) файла. Если оно задаётся явно, то PChar() нужно убрать.


grom   (2004-07-06 17:49:00) [2]

a какую надо иконку 16х16?


Afteam   (2004-07-06 09:20:00) [3]

to Begin...End:

Я проверял. Работать будет. Только иконку даст 32х32.


begin...end   (2004-07-01 09:31:00) [4]


> dimon_programmer

var
 Icon: TIcon;
begin
 Icon := TIcon.Create;
 Icon.Handle := ExtractIcon(HInstance, 'С:\MyFile.exe', 0);
 ImageListName.AddIcon(Icon);
 Icon.Free;
end;


P.S. Не проверял.


grom   (2004-07-01 09:18:00) [5]

Image1.picture.icon.Handle:=extractIcon(hInstance,PChar('C:\file.exe'),0);
ImageList1.add(Image1.Picture.Icon.Handle);
примерно так


wisekaa   (2004-06-30 13:12:00) [6]

Определись что ты хочешь?
1. В D7 есть пример resxplor - посмотри.
2. Примеры есть в кулибе.
3.
- Научиться создавать TIcon и читать в него иконку.
- Научиться добавлять этот объект в ImageList.


Iconka   (2004-06-30 13:04:00) [7]

А ты уверен что в ЛЮБОМ файле или папке содержится иконка?


Наверх

Титульная страница Поиск, карта сайта Написать письмо