Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Компонент dxDBTreeView1 [D7, MSSQL]


lod ©   (2008-09-30 09:47:00) 

Вобщем сформировал я дерево с помощью этого компонента, в этом дереве необходимо осуществить поиск. Использую метод Locate, нужную мне запись программа находит, но есть побочный эфект, некоторые ветки после этого раскрыватся, причём в хаотичном порядке, некоторые раскрываются, а некоторые нет, а мне надо что бы раскрывалась только ветка, где есть найденая запись. Как избавиться о этого эффкта ?


Сергей М.   (2008-10-03 12:08:00) [1]


> как надо правильно делать ?


Справку надо штудировать для начала.
Она не для Пушкина вообще-то писана)

Лезем в справку, читаем про св-во TdxDBTreeView.Options:

trCanDBNavigateOn changing the DB cursor in a linked DataSet, the selected tree node is also changed.


lod   (2008-10-03 11:33:00) [2]

>> Сергей М. ©
Ну и как надо правильно делать ?


Сергей М.   (2008-10-03 11:05:00) [3]


> в этом дереве необходимо осуществить поиск. Использую метод
> Locate


Locate - это метод TDataSet, а не TdxDBTreeView.

Т.е. ты ищешь не в дереве, как ты заявил, а в наборе данных, которым управляет TdxDBTreeView при построении/визуализации дерева и дальнейшем интерактивном взаимодействии пользователя с этим деревом.

У меня нет под рукой исх-ков TdxDBTreeView, но имею веские основания подозревать, что непосредственная навигация в наборе данных, которым управляет этот компонент, безведома самого компонента недопустима и приводит как раз к таким вот печальным последствиям.


lod   (2008-10-03 10:14:00) [4]

Чёт мне не помогло, далаю так

 dmGrafik.spTreeDse.DisableControls;
 if dmGrafik.spTreeDse.Locate('odse_s',edFindDse.Text,[loCaseInsensitive])=false then
   ShowMessage('Такая деталь не найдена')
 else
   dxDBTreeView1.SetFocus;
 dmGrafik.spTreeDse.EnableControls;


Ega23   (2008-09-30 10:05:00) [5]


> причём в хаотичном порядке


Если посмотришь исходники, то квидишь, что совсем даже и не в хаотичном.


> Как избавиться о этого эффкта ?


DisableControls/EnableControls


Наверх

Титульная страница Поиск, карта сайта Написать письмо