Hola, te pongo de la forma en que yo lo haría, puede que no este bien controlado y falte mas cosas. Utilizo HasChildren para ver si la hoja tiene hijos o no, si no tiene entonces significa que puedo sumar ese valor y otra cosita importante es ver si la hoja de ultimo nivel (la que tien valor) tiene padres para ir sumando hacía arriba hasta terminar con todos sus padres y lo que te dijo el amiguito Neftali recorrer desde el ultimo nodo.
Código Delphi
[-]
var
NodoPadre : TTreeNode;
Ind, suma : Integer;
begin
Ind := TreeView1.Items.Count-1;
suma := 0;
While Ind>0 Do
begin
If Not TreeView1.Items[Ind].HasChildren Then
begin
suma := suma + StrToInt(TreeView1.Items[Ind].Text);
if TreeView1.Items[Ind].Parent=Nil then
suma := 0
else
begin
NodoPadre := TreeView1.Items[Ind].Parent;
While NodoPadre <> nil do
begin
NodoPadre.Text := IntToStr(StrToInt(NodoPadre.Text)+suma);
suma := StrToInt(NodoPadre.Text);
NodoPadre := NodoPadre.Parent;
end; suma := 0;
end; Dec(Ind);
end
else
Dec(Ind);
end;end;
Has tus pruebas poniendo enteros en cada nodo de tus nodos hijos y 0 en los padres, ya despues tu ves los demas controles que tienes que aumentar.
Saluditos