Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
Голову сломал, но так и не нашел решения,как задать поиск вкомпоненте TTreeView. Делаю запрос к базе, строю динамическую таблицу в памяти и с помощью указателя вытаскиваю инфу в компонент... У меня всего то два узла. К примеру " КОД " -> 22 234 300 500 Кликая курсором в дереве по № кода, выходит инфа о коде. У каждого кода есть свой ID (номер), к которому я могу обратиться в проге.. Так вот зная ID, зня сам код, как передать фокус на нужный код в дереве.. Надо чтобы user набил код который его интересует, вывелась инфа (это я могу сделать) и передался фокус на нужный код (а вот етого не могу)... Буду очень признателен, кто подскажет решение по моему наболевшему вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 10:06 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
Клади всю инфу об элементе в TreeNode.Data. Сделай функцию поиска в дереве по твоим данным, а потом соответственно TreeView.Selected / Focused := <найденый узел> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 10:22 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
TTreeView отличается чрезвычайно тормозным поиском Лучше создать StringList, загнать в него индексы TreeNode и данные для поиска. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 11:05 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
TreeView вообще не быстр Лучше его просто не использовать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 11:15 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
2 Speaker зря ты так, нужно просто правильно подойти к решению задачи 2Цук нужно иногда пользоваться поском в форуме, обсуждалась эта тема уже неоднократно http://www.delphikingdom.com/helloworld/dbtreeview.htm][вот тебе инфа по работе с БД через дерево] а поск сам придумаешь как сделать, подсказка: используй рекурсию (так помоему оно называется) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 11:26 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
>зря ты так, нужно просто правильно подойти к решению задачи правильно подойти к решению задачи - это использовать компонент, который работает в несколько раз быстрее. это пройдено и проверено на личном опыте >используй рекурсию (так помоему оно называется) зачем? for i:=0 to TreeView.Items.Count-1 do begin ... end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 11:37 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
При построении дерева заодно заполнять THashTable (ID, Pointer(TTreeNode)), затем в этой таблице брать нужный узел дерева по нужному ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 11:42 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
да если заганять весь набор данных в дерево то и получишь тормаза. если почитаешь статей по той ссылке что я дал то балалайку у тя выйдет поск через for i:=0 to TreeView.Items.Count-1 do begin ... end; (а я смотрю что ты любитель в дерево загонять весь набор данных) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 11:48 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
>да если заганять весь набор данных в дерево то и получишь тормаза. это где я это сказал? стандартный способ - обрабатывать OnExpand. дерево-то бывает разным :) если в нем 5 позиций - проще прочитать его все. Опять же БД бывает разной, в Oracle можно прочитать все дерево одним запросом. А по поводу тормозов я уже говорил, что TreeView & ListVoew довольно медленно работают, я от них отказался имено в силу этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 11:59 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
За все советы огромное спасибо.По поводу тормозов. База Оракловская, к тому же находится в 40-ка км. от места где работают с моей прогой и никаких тормозов, деревце то простое хоть и не маленькое но все в окурат в одном небольшом запросе... Все ссылочки предложения просмотрю... Если есть еще какие мнения просьба отписать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 13:01 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
2 Цук посмотри сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 13:27 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
Speaker' у.. Интересная "херня"...:-) А есть прямой пример у Кого-нить с поиском В TTreeView, А ??? Ну чтоб нагляднее было и быстрее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 13:49 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
p.s Speaker' у.... В смысле неплохо... Кстати ТЫ отписал TreeView.Selected / Focused := <найденый узел>. Что ты подрузумевал под <найденый узел>? И ты отписал сделай функцию поиска, как ? Поиск по файлу с данными могу, а по компоненту НЕИЗВЕСТНО...? Пойду пока по Oracl-у пройдусь на форуме... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 14:05 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
Хорошо, по порядку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. в данном случае obj_id = PK из базы, obj_type = тип объекта эта пара значений уникально определяет объект в дереве. При заполнении дерева в эти два поля пихаем нужные значения. Из Оракла это удобно, так как можно получить одним запросом все дерево, без всяких рекурсий и т.д. и т.п. Далее, простейший поиск в дереве: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. соответственно из формы делаем примерно так: Код: plaintext 1. 2. 3. Если дерево не очень велико, то будет работать нормально, но вообще, как я уже говорил, лучше использовать другое. Я когда-то замерял - разница в скорости примерно в 3-4 раза. При необходимости можно делать производные классы от TMyObject для разных сущностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 14:22 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
Speaker' у Сенк's... Кажись усек...Буду пробывать, пока свежо на памяти... ВСЕМ.. Форум отличная штука, в разведку бы пошел с тем кто его ПОПРИДУМЫВАЛ ... Спасибо что откликнулись... ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2003, 14:56 |
|
||
|
Как задать поиск вкомпоненте TTreeView
|
|||
|---|---|---|---|
|
#18+
Компоненты для облегчения работы с типовыми операциями поиска, выбора и фильтрации данных Там есть компонент отображения дерева и поиска в нем. Может поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2003, 08:19 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32205111&tid=2117731]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 396ms |

| 0 / 0 |
