Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > TTreeView - отключить обработку стрелок |
Автор: XperT 16.7.2009, 17:49 |
При нажатии на кнопки влево/вправо мне нужно чтобы переход осуществлялся в дерева на следующий/предыдущий видимый нод. Это я сделал в обработчике нажатия компонента TTreeView. Но кроме этого TTreeView еще делает и стандартную обработку нажатия этих клавиш. Например, если нажать влево когда выделенный нод нижнего уровня, то выделится его перент. Как мне этого избавится? |
Автор: XperT 16.7.2009, 18:14 |
Стандартная отработка нажатия этих клавиш у компонентов такая: Если нажать вправо - то выделяется следующий ноди или чайлд (если есть), если нажать влево - перент (если есть) или предыдущий нод Нужно: Если нажать влево - выделяется следующий видимый нод, вправо - предыдущий видимый нод. |
Автор: Keeper89 16.7.2009, 18:19 | ||
Видимый - имеется ввиду "не свернутый" (т.е. переход только по раскрытым пунктам не зависимо от уровня вложенности)? |
Автор: XperT 16.7.2009, 18:23 |
Именно, для этого я использую функцию GetNextVisible. |
Автор: Keeper89 16.7.2009, 18:39 | ||
У меня все работает, скорее всего вы не переключали фокус обратно на дерево. Во пример для кнопки Назад:
|
Автор: XperT 16.7.2009, 18:43 |
Немного не верно выразился, под кнопками "Назад" и "Вперед" я имел ввиду клавиши на клавиатуре ![]() |
Автор: Keeper89 16.7.2009, 18:47 | ||
XperT, тогда имеется ввиду кнопки Влево и Вправо (т.к. кнопки Вниз и Вверх как раз перемещаются по видимых узлам)? |
Автор: XperT 16.7.2009, 18:50 |
Верно, опять не то сказал |
Автор: Keeper89 16.7.2009, 18:56 | ||
Тогда так:
З.Ы. При этом, конечно потеряется возможности разворачивать/сворачивать узлы кнопками Вправо/Влево. |
Автор: XperT 16.7.2009, 19:06 |
Идеально. Большое спасибо ![]() |