Carregar treeview em tempo de execução com ADO / Access

06/09/2004

0

Pessoal,

A rotina abaixo tem um erro no número de interações que o sistema
faz em tempo de execução.
Preciso descobrir como fazer para t1.Items.Count-1 refletir o contador
em tempo de execução do número de nós do nível principal, pois a medida que o sistema vai lendo e inserindo na árvore os nós no sub-nível seguinte, ele conta somente os filhos e não os pais(level=0).

O bd tem os seguintes itens de teste:
Tabela2
tipo | desc
0 A
1 B
2 C
3 D
4 E
5 F
6 G
7 H
Tabela1
cod |diag | tipo
1 D1 3
2 D2 4
3 D3 0
4 D4 1
5 D5 2
6 D6 2
7 D7 4
8 D8 1
9 D9 3
10 D10 1

Se ao invés de t1.Items.Count-1 substituir por 12 ai sim faz corretamente.
O que está errado?




procedure TForm1.FormShow(Sender: TObject);
var
c,c1,c2:integer;
ult1,ult2:integer;
lido:string;
lidotipo:string;
begin
ADOTable2.Close;
ADOTable2.Open;
ADOTable2.First;

while ADOTable2.Eof = false do
begin
lidotipo:=ADOTable2desc.AsString;
t1.Items.add(nil,lidotipo);
ADOTable2.Next;
end;
for c:=0 to t1.Items.Count-1 do
begin
ADOTable1.Close;
ADOTable1.Open;
ADOTable1.First;
while ADOTable1.Eof = false do
begin
lido:=ADOTable1DIAG.Value;
if (t1.Items.Item[c].Index) = ADOTable1tipo.AsInteger then
begin
if ((t1.Items.Item[c].HasChildren = false) and (t1.Items.Item[c].level=0)) then
begin
t1.Items.Addchild(t1.Items.Item[c],lido);
end
else
if ((t1.Items.Item[c].HasChildren = true) and (t1.Items.Item[c].level=0)) then
begin
t1.Items.Addchild(t1.Items.Item[c],lido);
end;
end;
ADOTable1.Next;
end;
end;
end;
end.


Responder

Posts

07/09/2004

Macario

neste caso voce não precisa do -1.


[b:97238e6ba3]for c:=0 to t1.Items.Count do [/b:97238e6ba3]

espero ter ajudado.


Responder

09/09/2004

N1

Macario,

Mesmo não colocando o -1, não funciona. O contador não está atualizando
para os nós finais.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar