Fórum Tree View não mostra o Child em local certo #221045

18/03/2004

0

Estou batendo cabeça com uma tree view e não consigo ver o que há de erro:

Leio do banco uma query que me tráz todos os produtos de uma tabela. Então abro um laço de repetição e começo a criar os nós da árvore. Em cada produto que leio da query verifico em outra query se existe código de barras para ele, se existir listo como filhos. Bem o primeiro que tem filhos, aparece, mas a partir do segundo aparece em produto errado. Minha lógica:

trwProd.Items.Clear;
i := 0;
While not qryAux.Eof do
begin
trwProd.Items.Add(Nil, Frm_data0001.qryAux.FieldByName(´DB15_COD_PROD´).AsString)
qryDisp.SQL.Clear;
qryDisp.SQL.Add(´SELECT * FROM DBO.DATA0018 WHERE DB18_COD_PROD = ´´´ + qryAux.FieldByName(´DB15_COD_PROD´).AsString + ´´´´);
qryDisp.Open;
While not qryDisp.Eof do
begin
If qryDisp.FieldByName(´DB18_RESERVADO´).AsInteger > 0 then
trwProd.Items.AddChild(trwProd.Items[i], qryDisp.FieldByName(´DB18_COD_PROD_DISP´).AsString + ´ - RESERVADO´)
else
trwProd.Items.AddChild(trwProd.Items[i], qryDisp.FieldByName(´DB18_COD_PROD_DISP´).AsString);
qryDisp.Next;
end;
qryAux.Next;
i := i + 1;
end;

Obrigada.


Fernanda.sique

Fernanda.sique

Responder

Posts

20/03/2004

Vinicius2k

Fernanda,

Observe este exemplo que fiz para outro colega de como montar uma TTreeView a partir de um TPopupMenu...
Acredito que a lógica seja quase a mesma do que vc pretende...
procedure MakeTree (Menu: TPopupMenu; Tree: TTreeView); 
var i, i2, n: integer; 
begin 
n:= 0; 
for i:= 0 to Menu.Items.Count - 1 do 
  begin 
   Tree.Items.Add(nil,(Menu.Items[i].Caption)); 
   for i2:= 0 to Menu.Items[i].Count - 1 do 
    begin 
     if Tree.Items[i2].GetLastChild <> nil then 
      n:= Tree.Items[n].GetLastChild.AbsoluteIndex + 1; 
     Tree.Items.AddChild(Tree.Items[n],(Menu.Items[i].Items[i2].Caption)); 
    end; 
  end; 
end;


vc precisa fazer uso de vários recursos como, pegar o último child, ler o índice absoluto, etc, para conseguir colocar os filhos no lugar correto...

espero ter ajudado e se precisar de mais ajuda, conte conosco...

T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar