ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Adicionar subitem - Treeview delphi

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
barbosasilva
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Fevereiro de 2017
Mensagens: 102

MensagemEnviada: Qua Ago 14, 2019 3:46 pm    Assunto: Adicionar subitem - Treeview delphi Responder com Citação

Boa tarde, gente

estou precisando usar o treeview para apresentar informações de disposição de equipamentos (nós filhos) em linha de produção. Mas estou fazendo algo errado, pq ao tentar adicionar os subitens, eles só estão entrando corretamente no primeiro nó pai, a partir do segundo eles começam a entrar como subitens de subitens.
Exemplo:
eu queria que ficasse assim:
- LP1
-EQ1
-EQ2
-LP2
-EQ3
-EQ4
-LP3
-EQ5
-EQ6

No entanto está ficando assim:
- LP1(Nó 1)
-EQ1 (subitem 1)
-EQ3 (subitem do subitem 1)
-EQ5
-EQ6
-EQ4
-EQ2
-LP2 (nó 2)
-LP3 (nó 3)

o código está assim:

Código:
procedure Tfrmgestaodamanutencao.FormShow(Sender: TObject);
var
  NUM_LP, i, j: Integer;
  NAME_LP, COD_LP: array of String;
  Node: TTreeNode;
  NUM_COD_EQUIP: Integer;
  COD_EQUIP: array of string;

begin
  TrvwEquip.FullExpand;
  TrvwEquip.Items.Clear; // Limpa o treeview
  while not DM_equip.ADOQueryEQUIP.Eof do
    begin
    // adiciona nos itens principais do treeview os nomes das linhas de produção
    Node := (TrvwEquip.Items.Add(nil, DM_equip.ADOQueryEQUIP.FieldByName
    ('NOME_LP').AsString));
    DM_equip.ADOQueryEQUIP.Next;
    end;

 // Seta o vetor que irá salvar os códigos identificadores das linhas de produção
  SetLength(COD_LP, NUM_LP);
  DM_equip.ADOQueryEQUIP.SQL.Clear;
  // seleciona o código de todas as linhas de produção na planilha LINHA_PROD
  DM_equip.ADOQueryEQUIP.SQL.Add('SELECT COD_LP from LINHA_PROD');
  DM_equip.ADOQueryEQUIP.Active := true;
  while not DM_equip.ADOQueryEQUIP.Eof do
  begin
    for i := 0 to NUM_LP - 1 do
    Begin
      // salva os códigos das linhas de produção em um vetor
      COD_LP[i] := DM_equip.ADOQueryEQUIP.FieldByName('COD_LP').AsString;
      DM_equip.ADOQueryEQUIP.Next;
    end;
  end;

  { adicionar no treeview os equipamentos respectivos de cada nó (linha de produção),
    rastreando-os via COD_LP }

  { seleciona o código dos equipamentos de uma respectiva linha de produção }
  for i := 0 to NUM_LP - 1 do
  Begin
    DM_equip.ADOQueryEQUIP.SQL.Clear;
    DM_equip.ADOQueryEQUIP.SQL.Add(
      'SELECT COD_EQUIP from 1_EQUIPAMENTO where LINHA_PROD = "' + COD_LP[i]
        + '"');
    DM_equip.ADOQueryEQUIP.Active := true;
// adiciona os equipamento às suas respectivas linhas de produção no treeview
    for j := 0 to NUM_COD_EQUIP - 1 do
    begin

   TrvwEquip.Items.AddChild(TrvwEquip.Items[i], COD_EQUIP[j]);
     
    end;
  end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
barbosasilva
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Fevereiro de 2017
Mensagens: 102

MensagemEnviada: Qua Ago 14, 2019 3:49 pm    Assunto: Responder com Citação

desculpem, acabou ficando desconfigurado uma parte do texto
Código:
eu queria que ficasse assim:
- LP1
   -EQ1
   -EQ2
-LP2
   -EQ3
   -EQ4
-LP3
   -EQ5
   -EQ6

No entanto está ficando assim:
- LP1(Nó 1)
   -EQ1 (subitem 1)
      -EQ3 (subitem do subitem 1)
         -EQ5
         -EQ6
      -EQ4
   -EQ2
-LP2 (nó 2)
-LP3 (nó 3)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB