Ver Mensaje Individual
  #5  
Antiguo 17-12-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Reputación: 24
Caro Va por buen camino
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
        //Tiene un nodo padre
        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;//While
        suma := 0;
       end;//else
      Dec(Ind);
     end
    else
     Dec(Ind);
  end;//While
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
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita