![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в TreeView определить область видимости
HRustBB © (2010-05-26 00:47:00)Имеется TreeView, подскажите пожалуйсто как можно определить какие ноды при перемещении скрола видны в клиентской области, какие выше, а какие ниже
Германн (2010-05-27 01:46:00) [21]
> берем последний видимый (предыдущий) и применяем тот же
> алгоритм к его дочерним узлам - и т.д., пока не будет найден
> последний видимый узел произвольного уровня.
Так это ж РЕКУРСИЯ! Страшно! :)
Юрий Зотов (2010-05-27 00:48:00) [22]Можно дополнить: как только сработал предыдущий алгоритм (найден невидимый узел 0-го уровня, берем последний видимый (предыдущий) и применяем тот же алгоритм к его дочерним узлам - и т.д., пока не будет найден последний видимый узел произвольного уровня.
Юрий Зотов (2010-05-26 23:36:00) [23]
> HRustBB (26.05.10 18:41) [4]
Берем TopItem, от него в цикле идем вниз по узлам (GetNextSibling) до тех пор, пока IsVisible не вернет False.
HRustBB (2010-05-26 18:41:00) [24]
> MBo © (26.05.10 08:17) [1]
> Для верхнего в окошке есть специальное свойство TTreeView
> Нижележащие, видимо, придется проверять.
Вот вот, а как проверить то?
HRustBB (2010-05-26 16:10:00) [25]
> MsGuns © (26.05.10 09:53) [2]
> TTreeNode.visible
Вы уверены?
MsGuns (2010-05-26 09:53:00) [26]TTreeNode.visible
MBo (2010-05-26 08:17:00) [27]Для верхнего в окошке есть специальное свойство TTreeView
Нижележащие, видимо, придется проверять.