Показать сообщение отдельно
  #17  
Старый 01.03.2012, 11:09
vivazz vivazz вне форума
Прохожий
 
Регистрация: 05.05.2011
Сообщения: 14
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
А на кой вам в коде переменная к? У вас-же после заполнения дерева будет количество элементов в 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;
Оказывается код немного не так работал как я его представлял...
я думал он работает так:
Создается родитель
потом для него создаются дочерние записи столько, сколько их в таблице
и т.д.
а получалось
создается родитель
создается дочерняя запись
создается родитель
создается дочерняя запись для первого родителя...
Вот как бы теперь еще одну подгруппу сделать, чтобы было
ФакультетВМ
---ФакультетВМ
------ФакультетВМ
------др.фак.
др.Фак.
Ответить с цитированием