Dronton2
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору clear2121 Как я понял: ListBox содержит список товаров. TreeList содержит перечень продавцов с полем, в котором перечислены продаваемые товары. И требуется при прохождении по списку товаров подсвечивать в дереве искомых продавцов. Задача делится на 2 части: 1. Определить событие в ListBox, срабатывающее при переходе между его элементами. (Если это DBListBox, то наверное можно привязаться к событыю из DataSet) 2. Выбрать нужные данные из дерева. Если это DBTreeList, до в датасете можно использовать фильтр, что-то наподобие такого: DataSet.DisableControls; DataSet.Filter := '%;5;%'; DataSet.Filtered := true; // Здесь нужно либо отметить в датасете все записи, поменяв значение в каком-либо поле, либо составить отдельный список отфильтрованных значений ключевого поля DataSet.Filtered := False; DataSet.EnableControls; // Если подсветка происходит в OnCustomDrawCell и были установлены значения в поле, то здесь всё понятно // В противном случае здесь нужно составить список TreeList.Selections Если датасет не использовать, то нужно написать процедуру, которая проходит по всем элементам дерева и сканирует определённое строковое поле на предмет присутствия в нём подстроки ';5;' и и добавляет искомый элемент в TreeList.Selections Можно ещё заблаговременно на сервере БД составить запрос, возвращающий список товаров и строковое поле со списком продавцов, его продающих. Это будет работать быстрее. |