Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.06.03;
Скачать: CL | DM;

Вниз

Как в TTreeView компоненту присвоить свой идентификатор.   Найти похожие ветки 

 
Andrey K   (2016-06-27 13:35) [0]

Имею редактор в котором создаётся проект из файлов с различным назначением.
Сделал дерево с помощью TTreeView котрое выводит всю структуру проекта. Дерево получилось достаточно ветвистое.
Хотел сделать, что бы тыкнуть по компоненту в дереве и открылся файл связанный с этим компонентом или показалась информация связанная с процессом.
Проблема: если бы у каждого нода был бы свой tag то присваивая в нём идентификатор я бы знал что надо с ним делать. Пробовал ориентироваться  по тексту нода, получается фигня, слишком не определённо.


 
iop ©   (2016-06-27 13:46) [1]

ttreenode.data : pointer


 
sniknik ©   (2016-06-27 13:48) [2]

ответ в последней обсуждаемой теме-
> Как узнать сколько байт в памяти занимает TreeView.Items[n].Data?
человек там в ноду стринглит пихает... а вообще любой объект/указатель можно


 
iop ©   (2016-06-27 13:55) [3]

если бы у каждого нода был бы свой tag

если бы у каждого нода был бы свой таг, то ноды были бы наследниками TComponent и их можно было бы кидать на форму.
Причем отдельно без самого дерева.
нода есть, а дерева нет. здорово, правда?


 
Andrey K   (2016-06-27 13:58) [4]

Я про Data читал, но так ничего и не понял, как им пользоваться.
К примеру в tvSE.Items.Item[n].Data хочу поместить идентификатор id
id: nteger;

begin
 id :=1;

Как поместить туда id


 
iop ©   (2016-06-27 14:04) [5]

Pointer(id)


 
sniknik ©   (2016-06-27 14:20) [6]

> хочу поместить идентификатор id
а нужно тебе скорее всего по -
> открылся файл связанный с этим компонентом или показалась информация связанная с процессом.
помещать туда свой объект, с разными данными и обработчиками... (файл - имя файла, действие открыть. данные - данные, действие получить и показать, и т.д.) т.е. то что ты сейчас думаешь сделать в функции разделяя по id, делать в разных объектах, вообще.


 
Andrey K   (2016-06-27 14:24) [7]

Всё, снялся с ручника. Спасибо всем.


 
Andrey K   (2016-06-27 15:00) [8]

Ещё маленький вопрос:
Если создаю
tvSE.Items.AddChild(tvSE.Items.Item[n],TProReg(PodList.Items[i])^.sps);
Как будет правильно занести id
tvSE.Items.Item[n].Data := TObject(id);
или
tvSE.Items[n].Data := TObject(id);


 
iop ©   (2016-06-27 16:18) [9]

тип данных слева от := не судьба посмотреть?


 
имя   (2016-06-28 00:45) [10]

Удалено модератором


 
Andrey K   (2016-06-28 09:47) [11]

Не не снялся с ручника.
Ставил эксперименты:
Записывал tvSE.Items.Item[n].Data := TObject(id);
Считывал:
 n:=tvSE.Selected.AbsoluteIndex;
 id := integer(tvSE.Items[n].Data);
и наоборот. Это одна область памяти.


 
sniknik ©   (2016-06-28 10:30) [12]

> Это одна область памяти.
???
это вообще не область, так как ты пишешь ты пишешь число в "указатель на объект", само собой оно ни объектом, ни областью не стало, так и осталось числом.


 
Andrey K   (2016-06-28 18:22) [13]

Суть в том, что таким образом можно записать туда и считать то что мне надо. Я не профисеонал, пишу программы исключительно для собственного пользования. И конечно могу ляпнуть какую нить глупость. :)


 
Eraser ©   (2016-06-29 01:42) [14]


> Andrey K   (28.06.16 18:22) [13]

Если не хватает Data, то глянь вот на событие OnCreateNodeClass. Через него можно создавать узлы пользовательского класса, в котором можно объявить все что угодно.
http://delphi.about.com/od/ttreeview/a/store-more-custom-data-into-tree-node-tree-view-delphi.htm


 
Andrey K   (2016-06-29 07:27) [15]

Я уже добился нужного результата. Но за совет спасибо. Обязательно почитаю. Всё равно буду наращивать функционал дерева. Ведь удобство в дереве очевидно. Странно, что я раньше этим вопросом не занялся.



Страницы: 1 вся ветка

Текущий архив: 2018.06.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.007 c
2-1466352197
Мишаня
2016-06-19 19:03
2018.06.03
Авторизация в Chromium


15-1472390791
istok20
2016-08-28 16:26
2018.06.03
либы для обработки дифов изображений...


2-1466589778
lewka
2016-06-22 13:02
2018.06.03
Работа с Timage


2-1464279405
SergP
2016-05-26 19:16
2018.06.03
Можно ли ускорить функцию?


15-1472833486
andrd
2016-09-02 19:24
2018.06.03
Не разрешается отладка USB (Samsung Galaxy S4)