Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Развернуть узел дерева с помощью клавиатуры [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);


Наверх

Титульная страница Поиск, карта сайта Написать письмо