Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2008, 17:52   #1
kayman
Пользователь
 
Регистрация: 10.09.2007
Сообщений: 29
По умолчанию обработчики добавления и удаления в дерево (TreeView)

Подскажите код или пример, как по событию OnClick добавлять и удалять узлы в дереве . Так, чтобы допустим дерево:
раздел
-отдел1
объект1
объект2
-отдел2
и т.д..
("Раздел" будет один)
Если выделен "Раздел" то значит создаём "отдел". Если выделен "отдел", то создаём "объект".

Если выделен узел "объект1" - то удаляем его.
А если выделен "отдел" и нажимаем удалить - удаляется он и его обекты.
Если есть у кого подобная программа выложите пожалуйста .
Или подскажите как? (Если можно, то лучше с использованием ООП)
kayman вне форума Ответить с цитированием
Старый 12.04.2008, 18:05   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Да там все совсем не страшно...
Например, удаление чего угодно:
TreeView.Items.Delete(TreeView.Sele cted);
Удаляется то, что вы перед этим выделили, в том числе и детки, если они есть у удаляемого узла.

По вашим условиям добавления будет всегда использоваться такой код:
var tnod: TTreeNode;
begin
tnod:=TreeView.Items.AddChild(TreeView.Selected,'новый объект');
end;
Как видите, ничего сложного...
Тем более, что и хэлп по деревьям вполне приличный и снабжен большим количеством примеров кода.

Последний раз редактировалось mihali4; 12.04.2008 в 18:09.
mihali4 вне форума Ответить с цитированием
Старый 12.04.2008, 18:55   #3
kayman
Пользователь
 
Регистрация: 10.09.2007
Сообщений: 29
По умолчанию

Спасибо! А как сделать, чтобы от своего родителя объект был унаследованный ?

И если вам не трудно подскажите, как такие примеры в Help(е) найти?
kayman вне форума Ответить с цитированием
Старый 12.04.2008, 20:10   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
как сделать, чтобы от своего родителя объект был унаследованный
Переведите Ей-богу, не понял, о чем речь...
Цитата:
как такие примеры в Help(е) найти?
Ставим курсор где-нибудь внутри ADDCHILD и жмем F1.
Среди предложенных вариантов по хэлпу выбираем тот, где упоминается VCL и TreeView. На открывшейся страничке помощи сверху есть ссылка Delphi Example. Жмем на нее и изучаем готовый пример.
Потом - аналогично по всем вопросам, вызывающим недоумение
mihali4 вне форума Ответить с цитированием
Старый 12.04.2008, 20:46   #5
kayman
Пользователь
 
Регистрация: 10.09.2007
Сообщений: 29
По умолчанию

т.е. мне нужно создать класс, а потом унаследовать от этого родителя всё, это ООП. Допустим "отдел" наследовался от "раздела". "объект" от "отдела". Как? Пример можно, это как я понимаю наследование и полиморфизм?
kayman вне форума Ответить с цитированием
Старый 12.04.2008, 20:56   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Опять не понял.
В TreeView все это уже организовано и оператор AddChild добавляет детенышей родителю. Все нужные классы уже определены.
Какие еще классы вы собираетесь создавать?
mihali4 вне форума Ответить с цитированием
Старый 11.05.2008, 23:53   #7
VenMaster
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 53
По умолчанию

А как сделать чтоб после закрытия программы дерево сохранялось. А то у менячето не сохраняется.
VenMaster вне форума Ответить с цитированием
Старый 12.05.2008, 00:08   #8
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

TreeView1.SaveToFile();
TreeView1.LoadFromFile();
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 12.05.2008, 00:44   #9
VenMaster
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 53
По умолчанию

AlDelta Спасибо))
А вот еще вопросик. Можно как нибудь чтоб в TreeView добавлялось имя выбранного обьекта, а при двойном щелчке он открывался, скажем в Memo.
VenMaster вне форума Ответить с цитированием
Старый 13.05.2009, 22:27   #10
kaban4eg
Новичок
Джуниор
 
Регистрация: 13.05.2009
Сообщений: 1
По умолчанию

Цитата:
Сообщение от VenMaster Посмотреть сообщение
AlDelta Спасибо))
А вот еще вопросик. Можно как нибудь чтоб в TreeView добавлялось имя выбранного обьекта, а при двойном щелчке он открывался, скажем в Memo.
VenMaster если нашел решение то пожалуйста напиши код, буду очень благодарен.
kaban4eg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задержка добавления записи в базу Access из Dephi Zver БД в Delphi 11 16.05.2011 17:57
Проблема добавления в мемо из IdHTTP Kukkk Работа с сетью в Delphi 6 11.11.2007 13:48
обработчики в кучу CyberMerlin Общие вопросы Delphi 15 15.08.2007 13:42
Защита файлов от удаления Viteef Общие вопросы Delphi 10 02.06.2007 07:40
добавления в готовую таблицу Strelka Microsoft Office Excel 1 09.03.2007 17:27