|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.09.2007, 11:40 | #1 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
Значки в ListView
Подскажите, пожалуйста, как в ListView отображать перед элементами стандартные значки, если элементами являются имена файлов с различными расширениями.
Свойство ViewStyle стоит как vsReport. И в догонку: можно ли запускать эти файлы двойным щелчком? Последний раз редактировалось Македонский; 12.09.2007 в 11:53. |
12.09.2007, 11:53 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну я бы сначала для каждого файла получил иконку через ExtractAssociatedIcon, потом ее уже отрисовал бы :
uses ShellAPI; ... procedure TForm1.Button1Click(Sender: TObject); var Icon: hIcon; IconIndex: word; begin IconIndex := 1; Icon := ExtractAssociatedIcon(HInstance, <Путь + файл>, IconIndex); DrawIcon(Canvas.Handle, 10, 10, Icon); end; А запускать можно через ShellExecute, Например: if ShellExecute(form1.handle,'open','D :\Help\Richter.chm','Richter.chm',' D:\Help\',1)<=32 then caption:='bad';
I'm learning to live...
|
12.09.2007, 11:59 | #3 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
С запуском получилось, а иконки так и не отображаются. Нельзя ли чтоб система автоматом подключала иконки к соответствующим файлам?
|
12.09.2007, 12:11 | #4 |
Форумчанин Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 183
|
Вот взял из библии делфи, попробуй должно работать
procedure TForm1.FormCreate(Sender: TObject); var SysImageList: uint; SFI: TSHFileInfo; begin //Создаём список маленьких и больших иконок ListView1.LargeImages:=TImageList.C reate(self); ListView1.SmallImages:=TImageList.C reate(self); //Запрашиваем большие иконки SysImageList := SHGetFileInfo('', 0, SFI, SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_LARGEICON); if SysImageList <> 0 then begin //Присваиваем системные иконки в ListView1 ListView1.Largeimages.Handle := SysImageList; ListView1.Largeimages.ShareImages := TRUE; end; //Запрашиваем маленькие иконки SysImageList := SHGetFileInfo('', 0, SFI, SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON); if SysImageList <> 0 then begin //Присваиваем маленькие системные иконки в ListView1 ListView1.Smallimages.Handle := SysImageList; ListView1.Smallimages.ShareImages := TRUE; end; end;
Until The End Of Time
|
12.09.2007, 12:28 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Ну может ты не туда рисуеш просто.
I'm learning to live...
|
|
12.09.2007, 13:11 | #6 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
Сделал как сказано в БИБЛИИ ДЕЛФИ, иконки появились, но все одинаковые, хотя расширения элементов (имен файлов) разные...
|
12.09.2007, 13:18 | #7 |
Форумчанин Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 183
|
Вот весь пример из книги посмотри там написано как сделать в Процедуре AddFile с помощью функции SHGetFileInfo
Until The End Of Time
Последний раз редактировалось Showy; 12.09.2007 в 13:24. |
12.09.2007, 13:22 | #8 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
Спасибо громаднейшее!
Showy, а у тебя эта библия в электронной версии? |
12.09.2007, 13:24 | #9 |
Форумчанин Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 183
|
Да есть вся. Весит 13Мб
Until The End Of Time
Последний раз редактировалось Showy; 12.09.2007 в 13:34. |
12.09.2007, 15:17 | #10 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
А в архиве?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Значки на рабочем столе | Xardas | Свободное общение | 4 | 01.03.2008 20:21 |
Убрать значки | masterprog | Помощь студентам | 2 | 28.12.2007 19:47 |
Помогите - Значки в Windows Vista | Алексей_C | Общие вопросы Delphi | 5 | 19.11.2007 01:27 |
Обновить значки в трее | Romanus | Win Api | 10 | 24.09.2007 16:21 |
значки в трее | oLMeR | Общие вопросы Delphi | 3 | 11.11.2006 18:39 |