Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Treeview

Автор: Dead.MorozZ 30.11.2005 20:55

Помогите кто знает, как пользоваться "Деоевом". Мне нужно по клику на один из Item'ов, чтоб происходило событие dry.gif

Автор: volvo 30.11.2005 21:10

Цитата
Мне нужно по клику на один из Item'ов, чтоб происходило событие

Ну, так оно происходит (OnClick обрабатывай)... Что именно ты хочешь получить? Путь к элементу на котором был Click?

Автор: Dead.MorozZ 30.11.2005 21:14

Именно! Мне надо определить, что надо обрабатывать ОнКлик.
Желательно название процедуры

Автор: klem4 30.11.2005 22:10

Ну так если у тебя для разных объектов должны выполняться разные действия при OnClick, так и опиши отдельно что надо делать при событии OnClick для каждого объекта, в чем проблема-то ?

Автор: Dead.MorozZ 1.12.2005 0:06

Действия я м сам могу описать. Мне надо название процедуры, которая вызывается при нажатии на одно из ответвлений дерева dry.gif dry.gif dry.gif

Автор: volvo 1.12.2005 0:24

Всегда TTreeView.OnClick вызывается... А чтобы определить, где именно было нажатие используй TreeView1.Selected

Автор: Dead.MorozZ 1.12.2005 0:41

To: volvo
Да нет, не то! Ты меня не так понял! Мне надо событие обрабатывать, не при клике по всему дереву, а только при клике по одной ветке unsure.gif
М-да врят-ли стало понятней unsure.gif unsure.gif

Автор: volvo 1.12.2005 0:49

Ok... Тебе набросать пример, который будет реагировать ТОЛЬКО на клик по веткам первого уровня? Или опять не то?

Автор: Dead.MorozZ 1.12.2005 0:51

Да именно!! Только почему обязательно первого уровня??
Ну вообщем кидай пример, а я разобраться попытаюсь rolleyes.gif rolleyes.gif

Автор: volvo 1.12.2005 1:03

Ну, попытайся wink.gif

procedure TForm1.TreeView1Click(Sender: TObject);
begin
if treeview1.Selected.Level = 1 then begin
showmessage('that is level #1');
label1.Caption := treeview1.selected.Text
end;
end;

При клике на Root дерева никакой реакции, если кликнешь на первый уровень - будет сообщение...

Автор: Dead.MorozZ 1.12.2005 1:09

О круто!! То что надо good.gif good.gif good.gif
В который раз СПАСИБО!!

Автор: Dead.MorozZ 1.12.2005 1:45

А как сделать так, чтобы панель, на которой находится TreeView растягивалась, когда Дерево разворачивается и сворачивалась, когда Деревосвертывается??

Автор: volvo 1.12.2005 2:12

Обрабатывай события OnCollapsed / OnExpanded

Автор: Dead.MorozZ 1.12.2005 2:22

А как мне определить размер распахнутого TreeViev'a, если я хочу сделать его динамическим (т.е. когда дерево свернуто - Т\/ маленький, когда распахнуто - Т\/ большое)

Автор: volvo 1.12.2005 2:37

Property Height и Width зачем? Можно так:

procedure TForm1.TreeView1Collapsed(Sender: TObject; Node: TTreeNode);
begin
treeview1.Width := 100;
treeview1.Height := 100;
end;

procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
begin
treeview1.Width := 200;
treeview1.Height := 200;
end;

А можно запомнить в OnCollapsed значение ширины/высоты и в OnExpanded его восстанавливать... Вариантов - море...

Автор: Dead.MorozZ 1.12.2005 2:58

Какое св-во Т\/ не позволяет редактировать заголовки веток и корней?

Автор: volvo 1.12.2005 3:26

Ты, наверное, про ReadOnly? Если его установить в True, то можно будет только распахивать/сворачивать TreeView, но не редактировать заголовки...

Автор: Dead.MorozZ 4.12.2005 19:16

Как можно разворачивать дерево "в замедленном действии"?

Автор: Dead.MorozZ 25.12.2005 18:04

Как убрать с дерева СкроллБары, которые появляются когда заголовки узлов не помещаются??