Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Cheсkbox в TreeVeew / 6 сообщений из 6, страница 1 из 1
11.02.2005, 13:13
    #32911557
nfp
nfp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cheсkbox в TreeVeew
Как заставить дерево реагировать на события в cheсkbox.
Т.е Помечаем родителя - должны помечаться все дочерние.
Снимаем метку родителя- снимаются метки у всех дочерних?
Или все эти действия нужно обрабатывать самому.
...
Рейтинг: 0 / 0
11.02.2005, 13:58
    #32911678
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cheсkbox в TreeVeew
Самому. "Автоматов" на такое нет.
...
Рейтинг: 0 / 0
11.02.2005, 14:56
    #32911880
nfp
nfp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cheсkbox в TreeVeew
Спасибо Это плохо.
А если не сложно , подскажите где можно клянуть пример кода для таких вещей .
Заранее благодарен .
...
Рейтинг: 0 / 0
11.02.2005, 15:13
    #32911937
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cheсkbox в TreeVeew
Поиск на этом сайте вырубили, так что найти проблематично. Но в принципе, ничего особо сложного.

Есть 2 подхода:

1) TreeView строится на основе таблиц-источников. Значит отбираешь нужные записи в таблицах, а потом просто ставишь/снимаешь метки в связанных с ними узлах. Проверить факт существования узла с известным ключем можно так:

Код: plaintext
1.
2.
IF TYPE("ThisForm.MyTree.Nodes(m.lcKey)")="O"
* Есть узел с ключем m.lcKey
ENDIF

2) Пишешь рекурсию или вложенные циклы, используя относительные ссылки собственно Nodes-коллекции Child, FirstSibling, LastSibling, Previous, Parent, Next, and Root для перебора всех узлов дерева.
...
Рейтинг: 0 / 0
11.02.2005, 16:13
    #32912111
nfp
nfp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cheсkbox в TreeVeew
Спасибо! Попробую в понедельник
...
Рейтинг: 0 / 0
13.02.2005, 19:11
    #32913434
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cheсkbox в TreeVeew
Hi nfp!

Событие NodeCheck - ходишь по всем Child (рекурсивно ессно) и чекаешь :)
Правда есть фоксовые нюансы - в "каноническом" случае программная установка
Nodes...Checked вызывает срабатывание этого события (для соответствующего
узла), но особенности фоксовой реализации OleContainer вызывают проблему -
при программной установке событие на срабатывает - придётся руками рекурсию
делать (ну если узлов не много то это нормально).

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

P.S. А сожалению MS Treeview не позволяет иметь 3 состояния чекбокса - что
сильно сужает удобство и наглядность (по идее если у подузлов отмечены не
все, а только часть, но сам узел должен быть отмечен 3-м состоянием -
..null.) Так что если уж делать "на совесть", то лучше отказаться от
"встроенных" чекбоксов, и делать всё на своих картинках (конечно это связано
со значительными сложностями - попробуй отследи где эта картинка
расположена, и на ней кликнули или рядом :( )

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Cheсkbox в TreeVeew / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]