|
#1
|
||||
|
||||
TListView иконки
Делаю весьма специфичный файловый менеджер. Требуется отображать определенные файлы с определенными опциями отображения/запуска. Все готово, кроме одного интерфейсного решения. А именно. Есть ImageList, в котором зашиты иконки для отображаемых файлов. Определенные файловые маски соответствуют определенным иконкам. Но требуется еще, чтобы при выборе некой дефолтной иконки (например с индексом 0), ListView отображал виндовую иконку, соответствующую данному файлу (либо это зашитая в сам файл (например ЕХЕ) используемая икона, либо это икона приложения, с которым ассоциируется файл).
Некоторые способы получения иконки я уже нашел (хотя часть весьма заморочены, так что не откажусь и от такой помощи), но я не знаю как их применить и итемам. Пока что при создании итема я делаю так Код:
ListView1.Items[i].ImageIndex := IconIndex //integer |
#2
|
||||
|
||||
Наполнять лист нужными иконками. Вообще какая-то странная задача. Можно же ShellListView использовать.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
первой иконкой (индекс == 0) в TImageList добавить иконку по-умолчанию. далее по мере извлечения из файлов.
Пишу программы за еду. __________________ |
#4
|
||||
|
||||
Цитата:
Цитата:
Как объяснить подробнее я не знаю без наводящих вопросов. Да это вам и не нужно. Однако суть задачи я рассказал вполне подробно. Цитата:
|
#5
|
||||
|
||||
Цитата:
Было неплохо ,если бы у итемов было свойство ListView1.Items[i].Picture.Bitmap (TBitmap), но такого свойства я не нашел. Последний раз редактировалось morebeauty, 11.03.2013 в 11:13. |
#6
|
||||
|
||||
можно легко убрать появление награбленных иконок в настройках программы. достаточно к настр. прикрутить другой список. я проверял - это работает.
Цитата:
Пишу программы за еду. __________________ |
#7
|
||||
|
||||
Цитата:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#8
|
||||
|
||||
Цитата:
Есть способ проще? |
#9
|
||||
|
||||
см. третье сообщение - это проще простого.
Пишу программы за еду. __________________ |
#10
|
||||
|
||||
Цитата:
Может, я просто не совсем понимаю этот способ реализации. можно небольшой примерчик? |
#11
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |
#12
|
||||
|
||||
алгоритм прост до безобразия:
-в цикле получения списка файлов читаем иконку из файла -если иконку получить не удалось, то присваиваем элементу иконку 0, т.е. которая по-умолчанию -если иконка найдена, добавляем ее в список, а элементу присваиваем последний индекс списка Пишу программы за еду. __________________ |
#13
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#14
|
||||
|
||||
Цитата:
- Если в настройках файлу соответствует картинка с индексом 0, то меняем картинку на притянутую из файла, иначе оставляем выбранную в настройках. Цитата:
Alegun, не совсем то, что мне нужно. Последний раз редактировалось morebeauty, 11.03.2013 в 11:55. |
#15
|
||||
|
||||
Ладно, спрошу конкретнее. Чтобы без лишних предположений и тд.
Допустим, у меня УЖЕ есть нарисованный список в ListView. Нужно выбрать итемы у которых свойство ImageIndex=0 (это легко) и поменять их на другие картинки типа TBitmap. Как это сделать? Я ведь могу на ходу (в рунтайме) поменять текст любого итема. Так почему с картинками все так сложно? |