Разное
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Отступ в Memo
Категория: Компоненты
Категория: Компоненты
BDE. Динамическое создание псевдонима
Категория: Базы данных
Категория: Базы данных
Переключение раскладки клавиатуры
Категория: Приложение
Категория: Приложение
Находится ли мышь над формой
Категория: Компоненты
Категория: Компоненты
Получить изображение формы в виде Bitmap и поместить его в буфер обмена
Категория: Компоненты
Категория: Компоненты
Добавление текстовой информации в .ехе-файл и чтение ее
Категория: Файловая система
Категория: Файловая система
Программно скрыть 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');