На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Интерфейс для сканера-антивируса , Как его реализовать?
    Я пишу антивирус-сканер, интерфейс которого представляет собой список дисков, которые можно выбрать для проверки на вирусы.

    Т.е. как в любых сканерах, что-то типа дерева дисков, там их можно открыть, получается дерево каталогов, а на против проверяемых вещей ставить галочку.
    Я новичок в Билдере, поэтому хочу спросить как такое можно реализовать, какие компоненты использовать.

    Спасибо.
      Попробуй ChechListBox или TreeView,ListView. Также можно поискать компоненты в сети, их там море ;) . Еще, помоему, что-то подобное было в Examples в папке билдера, поищи там.
      Сообщение отредактировано: ben1992 -
        Используйте TreeView + ImageList.
        Обрабатывайте щелчок по итему и заменяйте обычное изображение на изображения с галочкой (точнее даже не сами изображения, а ImageIndex).
        Сообщение отредактировано: artsb -
          Хочу спросить, может у кого есть исходники такого интерфейса, чтобы нагляднее было?
            В общем, пример в атаче.

            Он не доделан. Например, не обрабатывается ситуация, когда пользователь отметил папку (и соответственно, автоматически отметилось всё что есть внутри), а потом просто снял галочки со всех элементов этой папки. По идее надо снять галочку и с самой папки.

            Но это базовый пример. А дальше - сами. :)

            ЗЫ я бы доделал, но времени нет.
            Прикреплённый файлПрикреплённый файлExample_TreeView.rar (11.34 Кбайт, скачиваний: 322)
              to artsb

              Спасибо, но меня интересует главным образом проблема обнаружения дисков и папок. Ведь на каждом компьютере они разные, а у вас в интерфейсе оно не сканирует систему на кол-во дисков, а ставит уже вами набранные для примера. Как можно сделать, чтобы в этом дереве выводились диски и папки именно характерные для данного ПК.
                Ramonak насколько я помню, на одно из вкладок с компонентами есть TreeView, который автоматически заполняется тем что вам нужно. Я ещё гляну. Ну и посмотрю как можно руками сделать.
                  а TDriveComboBox и TDirectoryListBox ?
                      Цитата artsb @
                      на одно из вкладок с компонентами есть TreeView, который автоматически заполняется тем что вам нужно.

                      Нашёл. Но это не совсем то, что вам нужно.

                      Сделал руками.
                      Пример в атаче.

                      Правда долго дерево строится. Так что, вам надо будет какой-нибудь прогресс на форму кинуть. А если хотите чтобы побыстрее, то нужно будет отсеивать папки с атрибутами Системный, Скрытый и т.д. Просто добавите пару строк в условие, которое в функции поиска.
                      Да ещё оперативки дофига жрёт...
                      Сообщение отредактировано: artsb -

                      Прикреплённый файлПрикреплённый файлTreeView.rar (21.98 Кбайт, скачиваний: 198)
                        Цитата artsb @
                        Цитата artsb @
                        на одно из вкладок с компонентами есть TreeView, который автоматически заполняется тем что вам нужно.

                        Нашёл. Но это не совсем то, что вам нужно.

                        Сделал руками.
                        Пример в атаче.

                        Правда долго дерево строится. Так что, вам надо будет какой-нибудь прогресс на форму кинуть. А если хотите чтобы побыстрее, то нужно будет отсеивать папки с атрибутами Системный, Скрытый и т.д. Просто добавите пару строк в условие, которое в функции поиска.
                        Да ещё оперативки дофига жрёт...

                        Сначала нужно вывести только локальные диски, а дальше в событие OnExpand расшаривать дальше ;) . Причем если папка уже была открыта, ессесна заного не грузить. А ваш вариант может и полчаса все это грузить.
                          Цитата popsa @
                          Сначала нужно вывести только локальные диски, а дальше в событие OnExpand расшаривать дальше

                          Можно и так сделать. Так, наверное, даже будет лучше.
                          Цитата popsa @
                          А ваш вариант может и полчаса все это грузить.

                          Согласен :yes:
                          Но на то это и пример, что он пример. Автор топика переделает так как ему нужно.
                            Вот, переделал. Работает шустро :)
                            Прикреплённый файлПрикреплённый файлTreeView_2.rar (22.35 Кбайт, скачиваний: 250)
                              Цитата artsb @
                              Вот, переделал. Работает шустро :)

                              Да, подобное я имел ввиду ;) . Ток я делал, чтоб в папку для наличия плюсика добавлялся Child с именем "загрузка каталога ..." и соответствующим значком, но это уже мелочи. И еще, при использовании BeginUpdate, EndUpdate быстрее должно быть.
                                Цитата popsa @
                                "загрузка каталога ..."

                                Просто может быть такой каталог (да ещё первым). Получится, что каждый раз при открытии этой ветки у вас будет происходить её обновление. А теперь попробуйте создать каталог без имени :) Правильно - ничего не выйдет.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0382 ]   [ 15 queries used ]   [ Generated: 18.05.24, 08:06 GMT ]