Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.84] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Я пишу антивирус-сканер, интерфейс которого представляет собой список дисков, которые можно выбрать для проверки на вирусы.
Т.е. как в любых сканерах, что-то типа дерева дисков, там их можно открыть, получается дерево каталогов, а на против проверяемых вещей ставить галочку. Я новичок в Билдере, поэтому хочу спросить как такое можно реализовать, какие компоненты использовать. Спасибо. |
Сообщ.
#2
,
|
|
|
Попробуй ChechListBox или TreeView,ListView. Также можно поискать компоненты в сети, их там море . Еще, помоему, что-то подобное было в Examples в папке билдера, поищи там.
|
Сообщ.
#3
,
|
|
|
Используйте TreeView + ImageList.
Обрабатывайте щелчок по итему и заменяйте обычное изображение на изображения с галочкой (точнее даже не сами изображения, а ImageIndex). |
Сообщ.
#4
,
|
|
|
Хочу спросить, может у кого есть исходники такого интерфейса, чтобы нагляднее было?
|
Сообщ.
#5
,
|
|
|
В общем, пример в атаче.
Он не доделан. Например, не обрабатывается ситуация, когда пользователь отметил папку (и соответственно, автоматически отметилось всё что есть внутри), а потом просто снял галочки со всех элементов этой папки. По идее надо снять галочку и с самой папки. Но это базовый пример. А дальше - сами. ЗЫ я бы доделал, но времени нет. Прикреплённый файлExample_TreeView.rar (11.34 Кбайт, скачиваний: 333) |
Сообщ.
#6
,
|
|
|
to artsb
Спасибо, но меня интересует главным образом проблема обнаружения дисков и папок. Ведь на каждом компьютере они разные, а у вас в интерфейсе оно не сканирует систему на кол-во дисков, а ставит уже вами набранные для примера. Как можно сделать, чтобы в этом дереве выводились диски и папки именно характерные для данного ПК. |
Сообщ.
#7
,
|
|
|
Ramonak насколько я помню, на одно из вкладок с компонентами есть TreeView, который автоматически заполняется тем что вам нужно. Я ещё гляну. Ну и посмотрю как можно руками сделать.
|
Сообщ.
#8
,
|
|
|
а TDriveComboBox и TDirectoryListBox ?
|
Сообщ.
#10
,
|
|
|
Цитата artsb @ на одно из вкладок с компонентами есть TreeView, который автоматически заполняется тем что вам нужно. Нашёл. Но это не совсем то, что вам нужно. Сделал руками. Пример в атаче. Правда долго дерево строится. Так что, вам надо будет какой-нибудь прогресс на форму кинуть. А если хотите чтобы побыстрее, то нужно будет отсеивать папки с атрибутами Системный, Скрытый и т.д. Просто добавите пару строк в условие, которое в функции поиска. Да ещё оперативки дофига жрёт... Прикреплённый файлTreeView.rar (21.98 Кбайт, скачиваний: 208) |
Сообщ.
#11
,
|
|
|
Цитата artsb @ Цитата artsb @ на одно из вкладок с компонентами есть TreeView, который автоматически заполняется тем что вам нужно. Нашёл. Но это не совсем то, что вам нужно. Сделал руками. Пример в атаче. Правда долго дерево строится. Так что, вам надо будет какой-нибудь прогресс на форму кинуть. А если хотите чтобы побыстрее, то нужно будет отсеивать папки с атрибутами Системный, Скрытый и т.д. Просто добавите пару строк в условие, которое в функции поиска. Да ещё оперативки дофига жрёт... Сначала нужно вывести только локальные диски, а дальше в событие OnExpand расшаривать дальше . Причем если папка уже была открыта, ессесна заного не грузить. А ваш вариант может и полчаса все это грузить. |
Сообщ.
#12
,
|
|
|
Цитата popsa @ Сначала нужно вывести только локальные диски, а дальше в событие OnExpand расшаривать дальше Можно и так сделать. Так, наверное, даже будет лучше. Цитата popsa @ А ваш вариант может и полчаса все это грузить. Согласен Но на то это и пример, что он пример. Автор топика переделает так как ему нужно. |
Сообщ.
#13
,
|
|
|
Вот, переделал. Работает шустро
Прикреплённый файлTreeView_2.rar (22.35 Кбайт, скачиваний: 262) |
Сообщ.
#14
,
|
|
|
Цитата artsb @ Вот, переделал. Работает шустро Да, подобное я имел ввиду . Ток я делал, чтоб в папку для наличия плюсика добавлялся Child с именем "загрузка каталога ..." и соответствующим значком, но это уже мелочи. И еще, при использовании BeginUpdate, EndUpdate быстрее должно быть. |
Сообщ.
#15
,
|
|
|
Цитата popsa @ "загрузка каталога ..." Просто может быть такой каталог (да ещё первым). Получится, что каждый раз при открытии этой ветки у вас будет происходить её обновление. А теперь попробуйте создать каталог без имени Правильно - ничего не выйдет. |