![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: 2 Всего: 4 |
Доброе время суток!
- Столкнулся со следующей проблемой, мне необходимо реализовать 'файловый проводник', чтобы одновременно отображались иконки объектов. - С самой системой считывания директорий и раскрытия дерева проблем нету, проблема возникла с привязкой иконок к дереву. # Класс для извлечения иконок:
- Иконки объектов извлекаются, с этим проблем нету. - Меня интересует другое, в компоненте 'TreeView' Используется класс 'ImageList' для отображения иконок, по началу я решил, что это глупо, но затем хорошо обдумав ситуации, когда объектов будет много понял, что это экономия ресурсов(Правильная!). - Следовательно возникает разумный вопрос: Как правильная сверять, присутствует уже эта иконка или нет в нашем классе 'ImageList'. (Добавлять все иконки - это маразм) - Сверять иконки по пиксельно тоже считаю не очень разумно (Хотя пока лучшего способа не придумал) - Меня интересует чисто алгоритм, как будет рациональнее сделать проверку на наличие иконки в классе 'ImageList'. - Реализовать алгоритм на уровне кода проблем не составит. P.S. -> То есть мой вариант: Это при добавление какого-либо объекта, извлекать иконку и по пиксельно сверять её с теми, что уже присутствуют в классе 'ImageList', если такая иконка уже есть, то извлекаем индекс и присваеваем его ноду. (Если во время проверки хотябы один пиксель не совпадает, то переходим к следующей иконки из списка 'ImageList') Это сообщение отредактировал(а) MuForum - 5.9.2008, 15:53 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 8 Всего: 67 |
вообще говоря существует некий "imagelist системы" его можно получить(на самом деле можно получить его хэндл) и назначить нужному контролу.
Причём из каждого файла опять же через shell можно получить индекс иконки в этом imagelist... в моей реализации файлового менеджера использовался именно этот подход. -------------------- СУВ, Partizan. |
|||
|
||||
| MuForum |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: 2 Всего: 4 |
Если не затруднит, можно немного больше информации. (Пару ключевых слов, чтобы можно было на MSDN поискать и в google) # Добавлено: Немного помучившись, и правильно сформулировал запрос, нашел статью про системный 'как бы ImageList'. - Пока тяжело разобраться, так что помощь приветствую. P.S. -> Нашел статью на MSDN, правда объяснения и примеры на C++: Посетить; # Добавлено: Я нашел статью, в которой описывается как на C# обращаться к этому системному 'ImageList' и не только, но в данной статье есть неточности.
Это сообщение отредактировал(а) MuForum - 6.9.2008, 21:36 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |