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

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

Файл в TreeView / ListView [Delphi, Windows]


Денис ©   (2004-07-11 17:33:00) 

Требуется следующее: чтобы при перетаскивании файла или папки на форму
в компоненте типа TreeView / ListView появлялся соответствующий элемент,
причем с соответствующим ему системным значком.
В общем, чтобы было что-то наподобие видоизмененного ShellTreeView,
с файлами из разных папок.

p.s. Желательно, конечно, под KOL. Но можно решение и для VCL.

Буду очень благодарен всем откликнувшимся.
Ссылки на соотв. доки также только приветствуются.


z007   (2004-07-19 20:20:00) [1]


> А если то же самое, но в VCL?

Боюсь, вопрос не для этого форума :)


Денис   (2004-07-14 07:11:00) [2]

А если то же самое, но в VCL?
Наверное, все аналогично, но там
нет метода LoadSystemIcons для ImageList...
Как "загнать" системные значки в ImageList под VCL?


z007   (2004-07-12 00:09:00) [3]

1. Имя файла (файлов) берешь из FileList (в OnDropFiles )
2. Узнаешь значок для него примерно так:
functionGetIcon(FileName: string): Integer;
varSFI: TShFileInfo;
begin
 ShGetFileInfo( pChar(FileName), FILE_ATTRIBUTE_NORMAL, SFI,
                  sizeof( SFI ), SHGFI_ATTRIBUTES
                  orSHGFI_ICON orSHGFI_SMALLICON
                  orSHGFI_SYSICONINDEX );
  Result:= FolderIconIdx;
end;

3. Создаешь новый item в TreeView
    hItem:=TV.TVInsert( hParent, TVI_SORT, FileName)
ставишь
    xIcon:= GetIcon(FileName);
   TV.TVItemImage[ hItem ] := xIcon;
   TV.TVItemSelImg[ hItem ] := xIcon;
Естественно, в начале надо приделать к TV ImgList:
    ImgList:= NewImageList( nil);
    ImgList.LoadSystemIcons( TRUE );
   TV.ImageListNormsl(Small):=ImgList...

Все :)


Наверх

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