Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2018.06.03;
Скачать: [xml.tar.bz2];

Вниз

Как в 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;
Скачать: [xml.tar.bz2];

Наверх





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


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


4-1288828594
Tima
2010-11-04 02:56
2018.06.03
функции cryptprotectdata


2-1466529349
Иван Петров
2016-06-21 20:15
2018.06.03
Как узнать сколько байт в памяти занимает TreeView.Items[n].Data?


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский