Escolar Documentos
Profissional Documentos
Cultura Documentos
www.devmedia.com.br
[versão para impressão]
Link original: https://www.devmedia.com.br/quick-tips-carregando-um-objeto-na-treeview-com-rtti/15512
Nesta quick tip veremos como carregar um objeto na treeView dinamicamente com RTTI
Antes de começar vale lembrar que RTTI é um recurso da linguagem que permite recuperarmos informações
sobre tipos(classes, propriedades, métodos) em tempo de execução e interagir com elas, recuperando seu
nome, tipo, valor no caso de propriedades, executando no caso de métodos etc...
c := TCliente.Create();
c.codigo := 1;
c.nome := 'Ricardo Coelho';
https://www.devmedia.com.br/view/print.php?idcomp=15512 1/3
30/11/2019 Quick Tips : Carregando um objeto na treeView com RTTI
c.bairro := 'Realengo';
ListaClientes.Add(c);
c := TCliente.Create();
c.codigo := 2;
c.nome := 'Fernanda Matias';
c.bairro := 'Taquara';
ListaClientes.Add(c);
c := TCliente.Create();
c.codigo := 3;
c.nome := 'Juliana Rosse';
c.bairro := 'Barra';
ListaClientes.Add(c);
c := TCliente.Create();
c.codigo := 4;
c.nome := 'maria Candido';
c.bairro := 'Irajá';
ListaClientes.Add(c);
LoadInTreeView(listaClientes);
end;
https://www.devmedia.com.br/view/print.php?idcomp=15512 2/3
30/11/2019 Quick Tips : Carregando um objeto na treeView com RTTI
begin
//percorre as propriedades de TCliente
for prop in props do
begin
//Se for a primeira propriedade adiciona um nó Pai
//Senão insere um nó filho
if(prop = props[0])then
begin
node := TreeView1.Items.Add(nil,'Cliente: ' +
prop.GetValue(c).ToString);
end
else
begin
TreeView1.Items.AddChildObject(node,prop.name + ': ' +
prop.GetValue(c).ToString,c);
end;
end;
end;
end;
https://www.devmedia.com.br/view/print.php?idcomp=15512 3/3