Автор: Dronton2
Дата сообщения: 10.05.2007 10:25
		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 
  
 Можно ещё заблаговременно на сервере БД составить запрос, возвращающий список товаров и строковое поле со списком продавцов, его продающих. Это будет работать быстрее.