Показать сообщение отдельно
  #3  
Старый 08.10.2008, 15:20
yura_ac_dev yura_ac_dev вне форума
Прохожий
 
Регистрация: 08.10.2008
Сообщения: 2
Репутация: 10
По умолчанию

Есть база данных собранная вручную после прочтения статей по древовидным базам данных:
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. Если не правильно выражаюсь - прошу прощения. Я новичек
Ответить с цитированием