Цитата:
Сообщение от Страдалецъ
А на кой вам в коде переменная к? У вас-же после заполнения дерева будет количество элементов в TreeView1.Items.Count
И кстати, а как у вас реализована свзяь между таблицами Факультет,Группа,Студент. Или все в одной таблице?
|
Если там стоит переменная i, то у меня в 3 родителя добавляется по 1 дочерней записи имя которой такое же как у родителя, а мне нужно в каждого родителя записать все дочерние записи. Через перем. k получается записать только для одного родителя все дочерние записи.
Вот этот код:
Код:
while (not dm1.q2.Eof) do
begin
TreeView1.Items.AddChildObject(TreeView1.Items.Item[k],
dm1.q2.FieldByName('NAME_FACULTETA').AsString, Pointer(
dm1.q2.FieldByName('COD_FACULTETA').AsInteger)); //(это для примера опять идут факультеты, т.к. ничего в бд не заполнено)
inc(k);
dm1.q2.Next;
end;
Почему-то не выполняется для второго родителя и никак не пойму почему

Вот так вроде получилось, правильно ли?
Код:
k:=0;
//while not dm1.q2.Eof do
//begin
for i1 :=1 to dm1.q2.RecordCount do
begin
TreeView1.Items.AddChildObject(TreeView1.Items.Item[i],
dm1.q2.FieldByName('NAME_FACULTETA').AsString, Pointer(
dm1.q2.FieldByName('COD_FACULTETA').AsInteger)); //(это для примера опять идут факультеты, т.к. ничего в бд не заполнено)
inc(k);
dm1.q2.Next;
end;
//end;
i:=i+k+1;
q.Next;
Оказывается код немного не так работал как я его представлял...
я думал он работает так:
Создается родитель
потом для него создаются дочерние записи столько, сколько их в таблице
и т.д.
а получалось
создается родитель
создается дочерняя запись
создается родитель
создается дочерняя запись для первого родителя...
Вот как бы теперь еще одну подгруппу сделать, чтобы было
ФакультетВМ
---ФакультетВМ
------ФакультетВМ
------др.фак.
др.Фак.