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

Материал из DRKB

Построение древа TreeView из базы данных[править | править код]

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
      begin
        if PItemData(TreeView1.Items[i].Data).Index = data.QOrganCol.Fields[2].AsInteger then
          tnNew := TreeView1.Items[i];
      end;
    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;


Author: dron-s
Source: Взято из http://forum.sources.ru
ID: 03089