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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2013, 13:20   #1
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию TreeView - идентификатор элемента списка

Всем Привет!

Есть дерево с дочерними "элементами", к примеру

1
-----1.1
-----1.2
-----Test
2
-----Test
Test

с возможность добавления (удаления) "элементов", при выборе "элемента", допустим, в Memo будет отображаться некая информация из файла (файлы разные для каждого "элемента" списка).

Как мне идентифицировать "элемент" Test, в дереве их может быть несколько, но они "разные", тоесть при выборе будет отображаться уникальная инф-я для каждого.

По индексу (порядковому номеру внутри дерева) не катит т.к. будет возможность добавления-удаления

Помогите правильно реализовать задачу
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 02.08.2013, 13:42   #2
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

по родительским элементам например
Lime вне форума Ответить с цитированием
Старый 02.08.2013, 13:45   #3
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

Цитата:
Сообщение от Lime Посмотреть сообщение
по родительским элементам например
"Родительские" элементы тоже будут добавляться (перемещаться по списку вверх-вниз) и они также могут иметь "одинаковое" название
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 02.08.2013, 16:43   #4
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Для добавления элемента используй TreeView1.Items.AddObject или для добавления дочернего элемента TreeView1.Items.AddChildObject. А в качестве ссылки на объект можешь указать что угодно, вот те и будет
Цитата:
отображаться уникальная инф-я для каждого
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 02.08.2013, 17:26   #5
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

Цитата:
Сообщение от D-mon Посмотреть сообщение
Для добавления элемента используй TreeView1.Items.AddObject или для добавления дочернего элемента TreeView1.Items.AddChildObject. А в качестве ссылки на объект можешь указать что угодно, вот те и будет
а можно примерчик???
не понимаю 3 аргумента
Код:
var
 s : string;
 ptr : pointer;
 ...
 s := 'bla-bla';
 prt := @s;
 TrView.Items.AddObject(MyNode,'Name_Node',prt );
допустим это добавился 2-й элемент в дереве, как теперь прочитать значения его указатела (ptr) ?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!

Последний раз редактировалось spirit-ua; 02.08.2013 в 17:37.
spirit-ua вне форума Ответить с цитированием
Старый 02.08.2013, 18:18   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Попробуй мой вариант
Человек_Борща вне форума Ответить с цитированием
Старый 08.08.2013, 13:27   #7
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
как то все сложно для меня...

мне нужно элементарно:
1. Добавить элементу некий указатель (тестовую ссылку на файл)
2. Сгрузить указатели в файл (БД)
3. Загрузить дерево и привязать соответствующие указатели
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 08.08.2013, 13:48   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Допустим имена файлов в массиве Names
Код:
var i: Integer;
    Names: array of String;
    s: String;
...
  {Добавить - в i индекс имени в массиве}
  TreeView.Items.AddObject(nil,'Test',Pointer(i));
...
  {Взять индекс из текущего тега}
  i:=Integer(TreeView.Selected.Data);
  s:=Names[i]; // имя файла
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 08.08.2013 в 13:54.
Аватар вне форума Ответить с цитированием
Старый 08.08.2013, 15:09   #9
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Допустим имена файлов в массиве Names
Код:
var i: Integer;
    Names: array of String;
    s: String;
...
  {Добавить - в i индекс имени в массиве}
  TreeView.Items.AddObject(nil,'Test',Pointer(i));
...
  {Взять индекс из текущего тега}
  i:=Integer(TreeView.Selected.Data);
  s:=Names[i]; // имя файла
Оно, работает, а как уже СУЖЕСТВУЮЩЕМУ (который добавлялся как AddNode) родителю или потомку добавить это индекс (указатель) ? Или это не возможно, нужно програмно строить дерево из файла (БД) с добавлением указателей?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!

Последний раз редактировалось spirit-ua; 08.08.2013 в 15:12.
spirit-ua вне форума Ответить с цитированием
Старый 08.08.2013, 15:30   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Оно, работает, а как уже СУЖЕСТВУЮЩЕМУ (который добавлялся как AddNode) родителю или потомку добавить это индекс (указатель) ?
property Data не только для чтения но и для записи.

Цитата:
Код:
TreeView.Items.AddObject(nil,'Test',Pointer(i));
Код:
TreeView.Selected.Data:=Pointer(i);
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TreeView выделение элемента lu_una Общие вопросы Delphi 16 07.12.2012 07:26
TreeView - узнать ключ выделенного элемента DenProx Компоненты Delphi 7 14.02.2011 12:56
Удаление последнего элемента из списка и реверс этого списка. Goose Общие вопросы C/C++ 8 16.05.2010 16:12
treeview переименование элемента alco84 Microsoft Office Access 4 20.04.2010 13:28
Выделение элемента в TreeView pu4koff Общие вопросы .NET 2 06.10.2008 13:07