Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Отступ в Memo
   Категория: Компоненты
  BDE. Динамическое создание псевдонима
   Категория: Базы данных
  Переключение раскладки клавиатуры
   Категория: Приложение
  Находится ли мышь над формой
   Категория: Компоненты
  Программно скрыть MainMenu
   Категория: Компоненты
  Объект экрана — Screen
   Категория: Компоненты
  Преобразовать любой тип в строку
   Категория: Текст и строки

Delphi - База Знаний: Заполнение компонента TTreeView данными из TDataSet

  << Вернуться к Содержанию  

Процедура заполнения компонента TTreeView данными из TDataSet-совместимой выборки типа: idNode int, idParentNode int, cNodeName varchar, ..

{Важно: корневой узел дерева должен быть первой записью выборки.

Зависимости: Windows, SysUtils, DB, ComCtrls
Автор:В В В В В В  Delirium, Master_BRAIN@beep.ru, ICQ:118395746, Москва
Copyright:В В  Master BRAIN (Delirium)
Дата:В В В В В В В В 18 октября 2002 г.
***************************************************** }

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;

//Пример использования:

FillTree(TreeView1, ADOQuery1, 'idDoc', 'idParentDoc', 'cDocument');
  << Вернуться к Содержанию