Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.23.123] |
|
Сообщ.
#1
,
|
|
|
Есть TreeView, которая обрабатывает события OnClick и OnDblClick. Соответствующие действия производятся при соответствующих действиях МЫШЬЮ.
Можно ли заставить TreeView реагировать на КЛАВИАТУРУ таким образом: 1.Нажатие клавиш "перемещения курсора" вверх, вниз вызывало бы Click; 2.Развертывание узла клавишами "вправо" и Enter вызывало бы DblClick? Правильно ли моё мнение использовать KeyPress (Enter отследить могу, а вот "курсоры" - нет)? или можно как-то по-другому? |
Сообщ.
#2
,
|
|
|
1. OnChange, OnChanging
2. OnExpanded, OnExpanding |
Сообщ.
#3
,
|
|
|
А по подробнее можно?
OnChange - при изменении чего? TreeView.Selected:TTreeNode? еще более-менее, а OnChanging - OnExpanded - при разварачивании, ага это мой DblClick! а OnExpanding - Ну, что расшифровал - это так? |
Сообщ.
#4
,
|
|
|
OnChange и OnChanging выполняются при навигации по узлам дерева. даже незнаю в чем разница...
при обработке этих событий в процедуру передается переменная Node -- это и есть выбранный узел. сюда же можно вставить и реакцию на OnClick. OnExpanded и OnExpanding -- наверное тоже выполняются вместе, когда определенный узел разворачивается. только в какой последовательности - незнаю. |
Сообщ.
#5
,
|
|
|
procedure TForm1.FormCreate(Sender: TObject); begin form1.KeyPreview:=true; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if not TreeView1.Focused then exit; case key of vk_up, vk_down: TreeView1Click(self); vk_right, vk_return: TreeView1DblClick(self); end; end; procedure TForm1.TreeView1Click(Sender: TObject); begin form1.Caption:='click'; end; procedure TForm1.TreeView1DblClick(Sender: TObject); begin form1.Caption:='dbl click'; end; Делов-то B) |
Сообщ.
#6
,
|
|
|
Цитата ych_boriss @ 28.07.04, 11:19 OnChange и OnChanging выполняются при навигации по узлам дерева. даже незнаю в чем разница... onChange - как только ты выбрал узел в дереве onChanging - перед тем как выбранный узел станет текущим вроде так |
Сообщ.
#7
,
|
|
|
Спасибо всем за помощь!
Приду есчо |
Сообщ.
#8
,
|
|
|
в onChanging(), по-моему, можно запретить выделение другого Node, чтобы событие onChange() не настало.
|
Сообщ.
#9
,
|
|
|
Цитата Mischka @ 28.07.04, 14:07 в onChanging(), по-моему, можно запретить выделение другого Node, чтобы событие onChange() не настало. ага |