Quick Tips : Carregando um objeto na treeView com RTTI
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...
Insira um botão e uma TreeView no formulário.

Código do botão LoadClientes
procedure TForm1.Button1Click(Sender: TObject);
var ListaClientes:TList<TCliente>;
c:TCliente;
begin
ListaClientes := TList<TCliente>.Create();
c := TCliente.Create();
c.codigo := 1;
c.nome := 'Ricardo Coelho';
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;
Código do método LoadIntTreeView.
procedure TForm1.LoadInTreeView(Lista: TList<TCliente>);
var c:TCliente;
node: TTreeNode;
context:TRttiContext;
tipo:TRttiType;
props:TArray<TRttiProperty>;
prop:TRttiProperty;
begin
//recupera um contexto RTTI, necessário para recuperação do tipo
context := TRttiContext.Create();
//recupera o tipo TCliente
tipo := context.GetType(TCliente.ClassInfo);
//recupera lista de propriedades de TCliente
props := tipo.GetProperties();
//percorre lista de clientes
for c in lista do
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;
Resultado da execução da rotina

É isso aí pessoal, espero que tenham gostado.
Fiquem a vontade para criticar, tirar dúvidas e sugerir novos temas.
Abraço.
Ricardo Coelho