Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с TreeView

1.9K
14 февраля 2008 года
Cool Xacker
148 / / 06.06.2006
Всем привет!!!
Подскажите пожалуйста, как мне правильно работать с treeView, т.е. как добавить туда строку и подстроку с помощью кнопки.

Нашёл материал по этому но получилось только сохранить это дерефо в текстовый файл и загрузить его.
А вот как сделать чтобы пользователь мог самостоятельно добавлять в него не получается :(
и ещё момент, как сделать так чтобы при выборе какого либо элемента из этого дерева, выводилась информация в memo или ещё какое нибудт поле вывода
11
14 февраля 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Cool Xacker
Всем привет!!!
Подскажите пожалуйста, как мне правильно работать с treeView, т.е. как добавить туда строку и подстроку с помощью кнопки.

Нашёл материал по этому но получилось только сохранить это дерефо в текстовый файл и загрузить его.
А вот как сделать чтобы пользователь мог самостоятельно добавлять в него не получается :(
и ещё момент, как сделать так чтобы при выборе какого либо элемента из этого дерева, выводилась информация в memo или ещё какое нибудт поле вывода



можно посмотреть здесь пример на С++, но в паскаль не сложно переписывается

8
14 февраля 2008 года
mfender
3.5K / / 15.06.2005
Простейшее:

поставь на форме TTreeView (TreeView1), TEdit (Edit1) и TButton (Button1). На клике по последнему напейши такую процедурку:

 
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if TreeView1.Selected <> nil then
  begin
    TreeView1.Items.AddChild(TreeView1.Selected, Edit1.Text);
    TreeView1.Selected.Expanded := True;
  end
  else
    TreeView1.Items.Add(nil, Edit1.Text);
end;
9.4K
15 февраля 2008 года
AIGrifon
165 / / 13.11.2007
Также у каждого элемента дерева есть свойство Data - указатель. С помощью него можно привязывать к элементу дерева какую-либо инфу и работать с ней.
1.9K
19 февраля 2008 года
Cool Xacker
148 / / 06.06.2006
Цитата: mfender
Простейшее:

поставь на форме TTreeView (TreeView1), TEdit (Edit1) и TButton (Button1). На клике по последнему напейши такую процедурку:

 
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if TreeView1.Selected <> nil then
  begin
    TreeView1.Items.AddChild(TreeView1.Selected, Edit1.Text);
    TreeView1.Selected.Expanded := True;
  end
  else
    TreeView1.Items.Add(nil, Edit1.Text);
end;


спасибо конечно, но я так пробовал, всё прекрасно работает, ещё раз благодарю, но как добавить не только пункт, но и подпункт (на то оно и дерево, чтобы иметь какую то иерархию)??? вот в чём вопрос :confused:

11
19 февраля 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Cool Xacker
спасибо конечно, но я так пробовал, всё прекрасно работает, ещё раз благодарю, но как добавить не только пункт, но и подпункт (на то оно и дерево, чтобы иметь какую то иерархию)??? вот в чём вопрос :confused:



 
Код:
TreeView1.Items.AddChild(TreeView1.Selected, Edit1.Text);

PS: ключевое слово AddChild
1.9K
19 февраля 2008 года
Cool Xacker
148 / / 06.06.2006
Всё всем огромнейшее спасибо, разобрался. :)
1.9K
19 февраля 2008 года
Cool Xacker
148 / / 06.06.2006
А можно ли их сравнивать???
Т.Е.: Имеется одно дерево с определённой информацией, а потом появилось другое дерево (с обновлённой информацией - что то добавилось или изменилось) и надо чтобы программа автоматически проверила эти значения и если необходимо заменила старую информацию на новую :confused:
11
19 февраля 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Cool Xacker
А можно ли их сравнивать???
Т.Е.: Имеется одно дерево с определённой информацией, а потом появилось другое дерево (с обновлённой информацией - что то добавилось или изменилось) и надо чтобы программа автоматически проверила эти значения и если необходимо заменила старую информацию на новую :confused:



есть у TreeNode свойство Data (в С++ это пустой тип void* и записывай туда что хочешь) можно в цикле пробежаться по всем нодам дерева и сравнивая это свойство, делать выводы, что изменилось (Child появились новые и т.п.)

1.9K
19 февраля 2008 года
Cool Xacker
148 / / 06.06.2006
Цитата: oxotnik333
есть у TreeNode свойство Data (в С++ это пустой тип void* и записывай туда что хочешь) можно в цикле пробежаться по всем нодам дерева и сравнивая это свойство, делать выводы, что изменилось (Child появились новые и т.п.)



Извини если я занудничаю, а можно кодом это показать мне???

69K
01 марта 2011 года
strannik23
3 / / 01.03.2011
У меня на форме есть TreeView и DBGrid. На главной форме есть TTreeView(рабочий, добовляет, удаляет,редактирует записи дерева) и на дочерной форме DBGrid, и общая база данных access, как сделать так что бы при выделении определённого узла в TTreeView отображалась соответсвующая запись в DBGrid???
8
01 марта 2011 года
mfender
3.5K / / 15.06.2005
Мало данных. Нужно уточнить:
1. Какой конкретно TreeView?
2. Каким образом TreeView завязан с датасетом?

UPD. А, вчитался. Первый вопрос отпадает. Второй остаётся только догадываться.
69K
01 марта 2011 года
strannik23
3 / / 01.03.2011
извините за тупо описанную проблему,
TTreeView привязан к ADOTable, вот как здесь,
http://www.intuit.ru/department/se/dbpdelphi/10/1.html
только теперь нужно сделать так что бы при выборе узла, в гриде отображалась данная запись, я просто как то туповат и не помимаю, хотелось бы сделать а понять не могу
10
01 марта 2011 года
Freeman
3.2K / / 06.03.2004
Цитата: strannik23
TTreeView привязан к ADOTable, вот как здесь,
http://www.intuit.ru/department/se/dbpdelphi/10/1.html


Кретинизм какой-то. По-моему, самый простой способ связать TreeView с данными в базе -- добавлять ветви, записывая Bookmark в свойство TTreeNode.Data (или Object?). Для перехода к нужной записи достаточно будет выполнить GotoBookmark.

69K
01 марта 2011 года
strannik23
3 / / 01.03.2011
как бы тупо или ещё как небыло, я прошу помочь мне разобраться с этим, очень нужно
70K
06 апреля 2011 года
ksanniks
1 / / 06.04.2011
Подскажите как Сохранить созданное дерево TreeView. По нажатию на кнопку Button1 открывался документ либо Excel или текстовый документ и там он отображался
1
06 апреля 2011 года
kot_
7.3K / / 20.01.2000
по нажатью на кнопку - открыть документ либо Excel или текстовый документ и записать туда. После этого там он будет отображаться.
Твой К.О.
З.Ы. В связи с усиливающимся кретинизмом задающих вопросы я думаю что может тему закрыть?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог