Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Построение древа TTreeView из базы данных

01.01.2007
procedure TOrgColumn.LoadTreeView;
type
 
PItemData=^TItemData;
 
TItemData=record
   
Index:Integer;
 
end;
 
var
  tnNew
:TTreeNode;
  idNewItem
:PItemData;
  i
:integer;
begin
  TreeView1
.Items.Clear;
 
 
with data.QOrganCol do
   
begin
     
Active := false;
      SQL
.Clear;
      SQL
.Add('SELECT * FROM OrganizationColumns.DB');
      SQL
.Add('ORDER BY NumColumn, Name');
     
ExecSQL;
     
Active := True;
   
end;
 
  data
.QOrganCol.First;
 
while data.QOrganCol.Eof <> true do
   
begin
      tnNew
:= nil;
       
if data.QOrganCol.Fields[2].AsInteger >0 then
         
for i := 0 to TreeView1.Items.Count-1 do
           
if PItemData(TreeView1.Items[i].Data).Index =
              data
.QOrganCol.Fields[2].AsInteger then
            tnNew
:= TreeView1.Items[i];
 
       
with TreeView1.Items.AddChild(tnNew, data.QOrganCol.Fields[3].AsString) do
         
begin
           
ImageIndex := 1;
           
SelectedIndex := 0;
            idNewItem
:= new(PItemData);
           
Data := idNewItem;
            idNewItem
.Index := dmodule.data.QOrganCol.Fields[0].AsInteger;
         
end;
        data
.QOrganCol.Next;
   
end;
end;

Автор: dron-s

Взято из https://forum.sources.ru