Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 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...
Stilet вне форума Ответить с цитированием
Старый 12.09.2007, 11:59   #3
Македонский
Александр
Форумчанин
 
Аватар для Македонский
 
Регистрация: 15.08.2007
Сообщений: 112
По умолчанию

С запуском получилось, а иконки так и не отображаются. Нельзя ли чтоб система автоматом подключала иконки к соответствующим файлам?
Македонский вне форума Ответить с цитированием
Старый 12.09.2007, 12:11   #4
Showy
Форумчанин Подтвердите свой е-майл
 
Аватар для Showy
 
Регистрация: 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
Showy вне форума Ответить с цитированием
Старый 12.09.2007, 12:28   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Сообщение от Македонский Посмотреть сообщение
С запуском получилось, а иконки так и не отображаются. Нельзя ли чтоб система автоматом подключала иконки к соответствующим файлам?
Можно, это реализовано в ShellListView, иначе самому.
Ну может ты не туда рисуеш просто.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.09.2007, 13:11   #6
Македонский
Александр
Форумчанин
 
Аватар для Македонский
 
Регистрация: 15.08.2007
Сообщений: 112
По умолчанию

Сделал как сказано в БИБЛИИ ДЕЛФИ, иконки появились, но все одинаковые, хотя расширения элементов (имен файлов) разные...
Македонский вне форума Ответить с цитированием
Старый 12.09.2007, 13:18   #7
Showy
Форумчанин Подтвердите свой е-майл
 
Аватар для Showy
 
Регистрация: 08.08.2007
Сообщений: 183
По умолчанию

Вот весь пример из книги посмотри там написано как сделать в Процедуре AddFile с помощью функции SHGetFileInfo
Вложения
Тип файла: rar ListView.rar (8.4 Кб, 159 просмотров)
Until The End Of Time

Последний раз редактировалось Showy; 12.09.2007 в 13:24.
Showy вне форума Ответить с цитированием
Старый 12.09.2007, 13:22   #8
Македонский
Александр
Форумчанин
 
Аватар для Македонский
 
Регистрация: 15.08.2007
Сообщений: 112
По умолчанию

Спасибо громаднейшее!

Showy, а у тебя эта библия в электронной версии?
Македонский вне форума Ответить с цитированием
Старый 12.09.2007, 13:24   #9
Showy
Форумчанин Подтвердите свой е-майл
 
Аватар для Showy
 
Регистрация: 08.08.2007
Сообщений: 183
По умолчанию

Да есть вся. Весит 13Мб
Until The End Of Time

Последний раз редактировалось Showy; 12.09.2007 в 13:34.
Showy вне форума Ответить с цитированием
Старый 12.09.2007, 15:17   #10
Македонский
Александр
Форумчанин
 
Аватар для Македонский
 
Регистрация: 15.08.2007
Сообщений: 112
По умолчанию

А в архиве?
Македонский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значки на рабочем столе 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