Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
ВнизСохранения деревьев в файл Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c