Есть база данных собранная вручную после прочтения статей по древовидным базам данных:
id name_test id_id
0 Склады -1
1 Мой склад 0
2 Новый склад 0
3 Подсклад 1 1
4 Подсклад 2 1
5 Подсклад 3 1
6 Подсклад 4 1
7 Подсклад 1 2
8 Подсклад 2 2
9 Подсклад 3 2
10 1 3
11 1 3
12 1 3
Есть функция (взятая из интернета) :
Код:
procedure FillTree(Tree: TTreeView; Query: TDataSet; idNode, idParent,
cNodeName: string);
var
i: integer;
begin
// Корневой узел, должен быть первым в выборке Query
Query.First;
Tree.Items.Clear;
Tree.Items.AddObject(nil, Query.FieldByName(cNodeName).AsString,
Pointer(Query.FieldByName(idNode).asInteger));
Query.Next;
while not Query.Eof do
begin
i := 0;
while i < Tree.Items.Count do
if Tree.Items.Item[i].Data = Pointer(Query.FieldByName(idParent).asInteger)
then
begin
Tree.Items.AddChildObject(Tree.Items.Item[i],
Query.FieldByName(cNodeName).AsString,
Pointer(Query.FieldByName(idNode).asInteger));
break;
end
else
Inc(i);
Query.Next;
end;
end;
Admin: Пользуемся тегами!
Само заполнение:
FillTree(TreeView1, ADOQuery1, 'id', 'id_id', 'name_test');
В итоге мне нужно чтобы можно было создать любой item в любом "месте" компонента и все это записать в базу с последующим чтением из базы в компонент.
P.S. Если не правильно выражаюсь - прошу прощения. Я новичек