![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аналог TTreeView
DelphiLexx © (2005-12-15 15:39:00)Нужен класс(не компонент), который бы умел делать все то, что умеет делать визуальный компонент TTreeView.
Игорь Шевченко (2006-01-25 18:36:00) [1]DelphiLexx © (25.01.06 14:44) [24]
Я извиняюсь, но кроме classes.pas никаких других исходников не требуется.
DelphiLexx (2006-01-25 14:44:00) [2]
> я такое дерево еще и делал не
> один раз.
Не мог бы поделиться исходниками.
Игорь Шевченко (2006-01-24 11:00:00) [3]DelphiLexx © (23.01.06 18:28) [18]
> Ты вопрос читал?!
Я не только вопрос читал, я такое дерево еще и делал не один раз. Именно с использованием TComponent. Удобно, потому и рекомендую.
begin...end (2006-01-23 19:15:00) [4]> MBo © (23.01.06 19:13) [21]
...и 1 месяц :)
MBo (2006-01-23 19:13:00) [5]>Слишком много времени потребуется.
Хм....
С момента открытия ветки прошло 8 дней
DelphiLexx (2006-01-23 18:46:00) [6]
> Достаточно взять любую книжку по алгоритмам и структурам
> данных и написать дерево с нужным поведением
Слишком много времени потребуется.
MBo (2006-01-23 18:34:00) [7]Достаточно взять любую книжку по алгоритмам и структурам данных и написать дерево с нужным поведением.
DelphiLexx (2006-01-23 18:28:00) [8]
> TComponent. У него есть свойства Owner, Components, ComponentIndex,
> ComponentCount - этого вполне достаточно, чтобы организовать
> перемещение.
Ты вопрос читал?!
Игорь Шевченко (2006-01-23 18:05:00) [9]DelphiLexx © (23.01.06 17:40) [16]
TComponent. У него есть свойства Owner, Components, ComponentIndex, ComponentCount - этого вполне достаточно, чтобы организовать перемещение.
DelphiLexx (2006-01-23 17:40:00) [10]
> Может требуется хранить какие-то объекты в виде абстрактной
> структуры данных "Дерево"? Тогда подгонять под это дело
> TreeView - имхо, не самый оптимальный выбор.
У меня есть редактор технологической схемы элементы которой соединены между собой. Затем схема записывается в дерево: иерархия элементов этой схемы (кто есть родитель, кто ребенок). Потом по этой схеме ведутся расчеты для которого важна иерархия схемы. Поэтому мне нужен класс который был бы не визуальный(зачем пользователю отображать дерево), но умел бы перемещаться по дереву (методы типа: GetPrev, GetParent и т.п.)
Leonid Troyanovsky (2005-12-29 18:46:00) [11]
> DelphiLexx © (29.12.05 13:35) [9]
Вообще-то, тут вежливые люди и не задают вопроса
а оно тебе надо?
Попробуем переиначить вопрос: Нужен аналог TListBox,
но невизуальный (на вопрос а на зачем, обычно отвечают -
чтобы получить список директорий путем LB_DIR).
Так вот, пищи для ума оное обсуждение дает вполне достаточно,
чтобы принять рациональное решение, а иначе напросишься
на невидимое окно с невидимым деревом.
--
Regards, LVT.
Leonid Troyanovsky (2005-12-29 18:38:00) [12]
> Игорь Шевченко © (29.12.05 17:19) [13]
> > Нужен класс(не компонент), который бы умел делать все
> TComponent
Тогда уж TPersistent.
--
Regards, LVT.
Игорь Шевченко (2005-12-29 17:19:00) [13]
> Нужен класс(не компонент), который бы умел делать все то,
> что умеет делать визуальный компонент TTreeView.
TComponent
Набережных С. (2005-12-29 17:05:00) [14]
> DelphiLexx © (29.12.05 13:35) [9]
> Ты хочеш сказать что твоя конструкция сможет создать виртуального
> родителя для TTreeView?
Ага, еще только таких глупостей я не говорил. Всякие уже говорил, осталось только вот это.
Этот метод позволяет создать потомка TWinControl на любом окне. Только вот показывать его надо будет вызовом ShowWindow, ну и там еще некоторые мелочи, сам разбирайся, там все просто.
TUser (2005-12-29 13:42:00) [15]Может требуется хранить какие-то объекты в виде абстрактной структуры данных "Дерево"? Тогда подгонять под это дело TreeView - имхо, не самый оптимальный выбор. А если не угадал, - то не показывай тривью и все, а родитель пусть будет - никому не повредило пока.
Digitman (2005-12-29 13:37:00) [16]
> DelphiLexx © (29.12.05 13:35) [9]
Ну какая тебе нафих разница, кто будет родителем тривью-окна ?
Ну пусть им будет хоть тот же Application.Handle !
Тебе шашечки или ехать ?
DelphiLexx (2005-12-29 13:35:00) [17]
> TTreeView.CreateParented ?
Ты хочеш сказать что твоя конструкция сможет создать виртуального родителя для TTreeView?
Набережных С. (2005-12-28 20:08:00) [18]TTreeView.CreateParented ?
DelphiLexx (2005-12-28 17:24:00) [19]
> никто не заставляет тебя явно указывать владельца и родителя
> если родитель не указан, визуализация контекста объекта
> будет невозможна
>
> во всем остальном объект полностью функционален
Ты не прав на счет родителя, если родитель не указан возникает exception
"raised exception class EInvalidOperation with message 'Control '' has no parent window'
Digitman (2005-12-16 09:54:00) [20]
> мне не нужен, компонент которому требуется Owner, Parent
никто не заставляет тебя явно указывать владельца и родителя
если владелец не указан, ответственность за своевременное уничтожение объекта несешь ты сам
если родитель не указан, визуализация контекста объекта будет невозможна
во всем остальном объект полностью функционален
TreeView := TTreeView.Create(nil);
TreeView.Items.AddChild(..);
...
TreeView.Items.AddChild(..);
..
и т.д.
TreeView.Free;