Arquivo

Posts Tagged ‘TTreView’

Dados no TTreeView com TDataSet

O processo de preenchimento de dados TTreeView componentes de TDataSet compatível com tipo do exemplo : idNode int, idParentNode int, cNodeName varchar

adicionar uses  Windows, SysUtils, DB, ComCtrls

{Nota: o nó raiz deve ser o primeiro registro da amostra.

USES : Windows, SysUtils, DB, ComCtrls
***************************************************** }

procedure FillTree(Tree: TTreeView; Query: TDataSet; idNode, idParent,
  cNodeName: string);
var
  i: integer;
begin
  // O nó raiz deve ser o primeiro de uma consulta de exemplo
  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;

//Exemplo de uso

FillTree(TreeView1, ADOQuery1, 'idDoc', 'idParentDoc', 'cDocument');
Categorias:Artigos, Delphi Tags:, ,