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

Вниз

Сохранения деревьев в файл   Найти похожие ветки 

 
BVP ©   (2003-08-21 14:02) [0]

Уважаемые Мастера Подскажите пожалуйста компонент (маленький и невизуальный) для работы с деревьями(типа TTree из KOL, или TreeView что-бы была
вставка,удаление, перемещение узлов),
способный сохранять дерево в файл.
Еще желательно иметь возможность отображать это дерево на экран
другим компонентом. Например,данные из TTable через TDataSource может отображать DBGrid или еще кто-то, если ли что-то подобное для деревьев?
Если можно то в исходниках.
Спасибо заранее.


 
Miralex ©   (2003-08-21 14:33) [1]

Насчет "вставка,удаление, перемещение узлов TreeView" - ищи мои топики в етом разделе!


 
pasha_golub ©   (2003-08-21 14:34) [2]

TTreeView умеет все, если мало напиши потомка


 
Vlad ©   (2003-08-21 14:38) [3]

Вставка, удаление, перемещение, а так же сохранение в файл, загрузка из файла - все это стандартное TTreeView.

А вот что значит "маленький и невизуальный" + "способный отображать на экран" - мне непонятно.

Построить TreeView на основе TTable - задача нехитрая.
Небольшая рекурсивная процедура.


 
BVP ©   (2003-08-21 15:40) [4]

>>Vlad
маленький и невизуальный - значит что компонент не
должен быть наследником TWinControl и оболочкой для SysTree, не должен показываться на экран,
иметь Handl, и всякие ненужные свойства и методы типа Visible
онКлик и прочее. Отображать(рисовать) на экран дерево он
не должен (в крайнем случае это я сделаю сам).
он должен иметь что-то вроде
property Items: TTreeNodes; но не TTreeNodes ,
поскольку создать обьект типа TTreeNodes без Owner:TCustomTreeView не

получается
( constructor TTreeNodes.Create(AOwner: TCustomTreeView);)
, а TreeView не желателен поотму как истользовать в приложении без формы его (TreeView) ненжуно.
А узлы св-со Name:String и Data типа TBlobField или что нибудь еще длясохранения BLOB().
И все это нужно сохранять в файл (и читать тоже).
Извините за непонятный стиль обьяснения и обилие скобок.


 
Vlad ©   (2003-08-21 15:56) [5]

Может в TClientDataSet - создать иерархическую структуру таблицы. Насколько я помню он позволяет сохранять в файл, причем как в двоичный так и в XML формате


 
BVP ©   (2003-08-21 16:19) [6]

>>Vlad
А примерчик создания такой иерархической таблицы можно пожалста.
Сомнение у меня TClientDataSet работает через BDE?
Если да, то не годится таскать за собой BDE.


 
Vlad ©   (2003-08-21 16:23) [7]

Прелесть TClientDataSet в том и заключается, что он вобще может работать в отрыве от всяких баз. см. метод CreateDataSet. Там хороший пример. И соотв. никаких BDE не надоть...
Вот пример иерархической структуры таблицы:

| ID | PARENT_ID | NAME | .....
Где parent_id - ссылка на собственный id. Т.е. родительская ветка.


 
BVP ©   (2003-08-25 12:12) [8]

>>Vlad
Спасибо 80%-е.
Поскольку этот TClientDataSet немного не то,
но работает, даже в консольном приложении и
при этом
program Project1;
uses Forms, DBClient,DB;
var ClientDataSet1: TClientDataSet;
begin
ClientDataSet1:=TClientDataSet.Create(nil);
ClientDataSet1.Free;
end.
весит всего 625кб :)

А то что я хотел( что бы сразу дерево, а не табло и маленькое ) видимо нет в природе.
Пока!
Пока.(В смысле гудбай)



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
14-10948
Klavishnik
2003-08-16 14:19
2003.09.04
Можно программно отключить


14-10925
mOOx_
2003-08-16 15:14
2003.09.04
Список запущенных задач на удаленной машине


3-10561
Lamer_of_Delphi
2003-08-15 11:15
2003.09.04
ODBC Driver


1-10816
Zheks
2003-08-21 21:03
2003.09.04
После экзешника


14-10905
Zhenka
2003-08-12 09:11
2003.09.04
Помогите разобраться с файлами