| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > ImageList + Listview |
| Автор: darkmamba 26.11.2008, 21:03 |
| Здравствуйте уважаемые форумчане. Есть в программе listview со списком(2 колонки - caption и subitem) , есть imagelist в котором допустим 2 иконки, как сделать чтоб при выполнение какого-нибуть условия загружалась допустим первая иконка из imagelist и помещалась во 2 колонку(subitem), если нельзя в субитем, то тогда подскажите можно ли в caption запихать 2 иконки подряд |
| Автор: morpheyushka 27.11.2008, 11:55 | ||
В SubItem можно запихнуть иконку.
Этот код добавит в ListView итем и сабитем и добавит в каждую колонку по иконке! Если хочешь выводить или не выводить иконки, или разные выводить в зависимости от условия - используй методы у ListView OnCustomDrawItem и OnCustomDrawSubItem. При определенных условиях выставляй нужный индекс иконки в (ставь -1 что бы иконка не отображалась). ЗЫ Если что то не понятно - спрашивай... |
| Автор: pseud 27.11.2008, 12:00 |
| тебе нужны иконки для итемов листа или для заголовков колонок? |
| Автор: darkmamba 28.11.2008, 12:50 |
| morpheyushka, все доходчиво и понятно, спасибо pseud, нужно было для итемов листа, но не откажусь от примера для заголвков |
| Автор: pseud 28.11.2008, 16:10 | ||||
| ©Delphi World 6.0 Иногда бывает полезно в заголовке колонки показывать стрелочку, чтобы информировать пользователя, по какой колонке идёт сортировка. Добавьте следующий код в форму:
Картинки берутся из списка SmallImages. Вам надо будет вызвать эту функцию для каждой колонки и установить ShowImage в TRUE для той колонки, которую Вы будете сортировать. Сделать это можно в функции OnColumnClick():
Проблема: Изменение размера колонки генерирует сообщение WM_PAINT, которое стирает картинку, поэтому Вам прийдётся переопределить WM_PAINT и вызвать SetColumnImage снова. Использовался компонент TApplicationEvents в delphi 5. |