Como pegar valor do TreeView
Opa, estou com uma aplicação de Delphi IntraWeb, onde utilizo um TreeView para listar os Usuarios, como não possui TreeView com ligação ao DB, a listagem é na mão, mas não consigo pegar o Numero do Codigo do Usuario, sempre pega o ultimo registro, pois pela listagem é feito um While
Não tenho a menor ideia de como faço para pegar o codigo, qualquer ideia é bem vinda
Delphi Intraweb
SQL
Não tenho a menor ideia de como faço para pegar o codigo, qualquer ideia é bem vinda
Delphi Intraweb
SQL
Ramboli
Curtidas 0
Melhor post
Emerson Nascimento
20/01/2021
se é você quem monta a TreeView, você pode fazer a ligação com o banco de dados. No lugar de AddChild(), use AddChildObject(), que fará a associação do nó criado com um ponteiro (que pode ser qualquer coisa - mesmo, desde um valor primitivo até um objeto da VCL).
vamos supor que o campo chave para a busca é o código do usuário (um valor inteiro).
na montagem da TreeView:
da forma acima você acrescentou um item associado a um 'objeto' (na verdade associado a um ponteiro).
para posicionar no registro ao clicar no item:
vamos supor que o campo chave para a busca é o código do usuário (um valor inteiro).
na montagem da TreeView:
IDRegistro := DatasetUsuario.FieldByName('CODIGO').AsInteger; TreeView.Items.AddChildObject( [nohPai], DatasetUsuario.FieldByName('Nome').AsString, Pointer(IDRegistro));
para posicionar no registro ao clicar no item:
noh := TreeView.Selected; if (noh.Data <> nil) then // indica que há informação de um registro a ser posicionado try IDRegistro := Integer(noh.Data); // aqui obtém o código do usuário associado ao nó selecionado // com o código do usuário 'em mãos', use qualquer forma de posicionamento (query, locate, find) finally / except [qualquer implementação necessária] end;
GOSTEI 1
Mais Respostas
Ramboli
19/01/2021
se é você quem monta a TreeView, você pode fazer a ligação com o banco de dados. No lugar de AddChild(), use AddChildObject(), que fará a associação do nó criado com um ponteiro (que pode ser qualquer coisa - mesmo, desde um valor primitivo até um objeto da VCL).
vamos supor que o campo chave para a busca é o código do usuário (um valor inteiro).
na montagem da TreeView:
da forma acima você acrescentou um item associado a um 'objeto' (na verdade associado a um ponteiro).
para posicionar no registro ao clicar no item:
vamos supor que o campo chave para a busca é o código do usuário (um valor inteiro).
na montagem da TreeView:
IDRegistro := DatasetUsuario.FieldByName('CODIGO').AsInteger; TreeView.Items.AddChildObject( [nohPai], DatasetUsuario.FieldByName('Nome').AsString, Pointer(IDRegistro));
para posicionar no registro ao clicar no item:
noh := TreeView.Selected; if (noh.Data <> nil) then // indica que há informação de um registro a ser posicionado try IDRegistro := Integer(noh.Data); // aqui obtém o código do usuário associado ao nó selecionado // com o código do usuário 'em mãos', use qualquer forma de posicionamento (query, locate, find) finally / except [qualquer implementação necessária] end;
Opa, deu certo aqui com algumas pequenas mudanças
Se não for pedir muito, como eu alinho os itens?
quando possuo apenas 1 usuario ele vem alinhado a esquerda, mas quando possuo mais de 1 ele descofigura e fica alinhado ao meio todo bugado
GOSTEI 0
Emerson Nascimento
19/01/2021
não entendi o que quer alinhar.
pode demonstrar o que está acontecendo e como quer que fique?
pode demonstrar o que está acontecendo e como quer que fique?
GOSTEI 1
Ramboli
19/01/2021
não entendi o que quer alinhar.
pode demonstrar o que está acontecendo e como quer que fique?
pode demonstrar o que está acontecendo e como quer que fique?
Bem, ao abrir uma treeview com muitos usuarios, ela abre mais ou menos assim
Usuarios usu1 usuu2 usu 3 usu 4
Gostaria q ele listasse alinhado mais ou menos assim
Usuarios usu1 usu2 usu 3 usu4
Como posso fazer isto?
Deste ja eu agradeço pela ajuda
GOSTEI 0
Emerson Nascimento
19/01/2021
você pode publicar o trecho do código que você está utilizando para adicionar os itens?
GOSTEI 1