Por lo primero, checa el evento
OnChange del
TreeView, este en uno de sus parámetros contiene el nodo que has seleccionado...
Para saber cual es el nivel del nodo, verifica la propiedad
Level del nodo.
Sobre lo segundo, puedes usar los eventos
OnCollapsed y
OnExpanded, en estos eventos cambias el valor de
ImageIndex del nodo que acabas de expandir o collapsar:
Código Delphi
[-]
procedure TForm1.TreeView1OnCollapsed(Sender: TObject; Node: TTreeViewNode);
begin
Node.ImageIndex := 0; Node.SelectedIndex := 0
end;
procedure TForm1.TreeView1OnExpanded(Sender: TObject; Node: TTreeViewNode);
begin
Node.ImageIndex := 1; Node.SelectedIndex := 1
end;
Saludos...