![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Развернуть узел дерева с помощью клавиатуры [D5, Win95/98, Win2k]
forrest1 © (2002-02-15 09:57:00)Доброе утро, господа!
Подскажите, как развернуть определённый узел дерева при нажатии какой-нибудь клавиши клавиатуры.
Я пишу следующее
procedure TEnterpriseF.TreeView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var r :boolean;
begin
r:=True;
case Key of
13 : begin // клавиша Enter
i:=0;
While (not TreeView1.Items[i].Selected) and (i<TreeView1.Items.Count) do
i:=i+1;
TreeView1Expanding(TreeView1,TreeView1.Items[i],r);
end;
end;
end;
Но после выполнения этого - никакого результата!
помогите, pls
Спасибо!
forrest1 (2002-02-15 10:32:00) [1]Огромное спасибо всем, кто ответил!!!
Мастерство не пропьёшь. :))
troits (2002-02-15 10:23:00) [2]Не понятно, что ты хочешь.
Зачем перебирать все узлы дерева?
Во - первых, это долгая операция, лучше к узлам вообще так не обращаться, а, во - вторых, получить selected - узел можно с помощью TreeView1.Selected . А "развернуть" его - TreeView1.Selected.Expand
McSimm (2002-02-15 10:20:00) [3]TreeView1Expanding похоже является вызовом события OnExpanding.
Все наоборот. Это событие должно вызывать обработчик.
Чтобы развернуть элемент, надо либо установить его св-во Expanded := True; либо вызвать метод Expand(True/False), где в качестве параметра можно указать - разварачивать рекурсивно или только этот элемент.
if Assigned(TreeView1.Selected) then
TreeView1.Selected.Expand(True);