Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2011, 21:29   #1
Ewgeny Kolyaev
 
Регистрация: 24.02.2011
Сообщений: 6
По умолчанию Фильтрация строк в TListView

Здравствуйте, у меня такой вопрос:
На форме находятся TTreeView и TListView.
TreeView заполнен, например так

Категория1
......Подкатегория1
......Подкатегория2
............Подкатегория1.1
............Подкатегория1.2
......Подкатегория3
Категория2

Как сделать так, чтобы при выборе Item'a в TreeView На ListView выводились только определённые строки, причём при выборе «Категория1» выводятся все строки из «Подкатегория 1 .. 3», а при выборе категории более низкого уровня - только некоторые из них? (Как это реализовано в Download Master).
Заранее благодарен.
Ewgeny Kolyaev вне форума Ответить с цитированием
Старый 24.02.2011, 21:58   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

При выборе нового узла в TreeView очищайте ListView и заполняйте его нужными вам данными, исходя из того, какой узел активен
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.02.2011, 22:05   #3
Ewgeny Kolyaev
 
Регистрация: 24.02.2011
Сообщений: 6
По умолчанию

То есть, без перебора строк не обойтись?
Ewgeny Kolyaev вне форума Ответить с цитированием
Старый 24.02.2011, 22:59   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну они же сами не запрыгнут в ListView
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.02.2011, 23:06   #5
Ewgeny Kolyaev
 
Регистрация: 24.02.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ну они же сами не запрыгнут в ListView

Ну да, согласен. Я просто думал, что там есть какой-нибудь скрытый метод для наложения фильтра на уже заполненную таблицу.
Значит, понятно - в каждом узле создавать идентификатор, по которому осуществлять выбор записей из какой-либо структуры.
Понятно, спасибо большое!
Ewgeny Kolyaev вне форума Ответить с цитированием
Старый 24.02.2011, 23:36   #6
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Зачем идентификатор ???
Есть TreeView.Selected, есть HasChildren, GetFirstChild, GetNextChild, GetLastChild...
asmodey1 вне форума Ответить с цитированием
Старый 25.02.2011, 06:45   #7
Ewgeny Kolyaev
 
Регистрация: 24.02.2011
Сообщений: 6
По умолчанию

TreeView.Selected, HasChildren, GetFirstChild, GetNextChild, GetLastChild используется скорее для поиска узла (их перебора). Хотя, без идентификатора тоже можно обойтись - в свойстве data указать ссылку на структуру в памяти, и перебором всех подузлов выбранного узла осуществить внесение записей в таблицу. Тем более, что количество столбцов фиксировано.

Последний раз редактировалось Ewgeny Kolyaev; 25.02.2011 в 06:54.
Ewgeny Kolyaev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TListView delphi kefir4ik Помощь студентам 3 16.09.2010 23:17
Инициализация TListView Oburec Компоненты Delphi 0 04.05.2009 00:30
TListView и TPanel goblinyara Компоненты Delphi 3 09.01.2009 23:53
Цветные строки в TListView Johnson Компоненты Delphi 6 18.07.2008 15:07
Вопрос по TListView. madroller Компоненты Delphi 1 03.11.2006 04:35