treeview 的父节点和子节点取值有关问题

treeview 的父节点和子节点取值问题!
我的树是这样的
父亲1
  2
  3
父亲2
  3
  4
我想得到的结果是,统计父亲 的子节点相加。之后显示在父亲1 后。如:得到结果
父亲1 5
父亲2 7
我下边的代码!只能取到子节点值,相加不到一起,闷!

i,d,f: Integer;
begin

memo1.Clear;
d:=0;
for i:=0 to treeview1.Items.count-1 do
begin
  if TreeView1.Items[i].Level = 0 then
  memo1.Lines.Add(TreeView1.Items.Item[i].Text);
  if TreeView1.Items[i].HasChildren=false then
  begin
  memo1.Lines.Add(TreeView1.Items.Item[i].Text);
  f:=strtoint(TreeView1.Items.Item[i].Text);
  d:=d+f ;
  showmessage(inttostr(d));
  end;

------解决方案--------------------
哦,想把改动过的标个颜色,看不到,再发一次吧
Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);
var
  i,j,d:integer;
begin
  {memo1.Clear;}
  for i:=0 to treeview1.Items.count-1 do
  if TreeView1.Items[i].Level=[color=1 then
  begin
    d:=0;
    if TreeView1.Items[i].HasChildren then
    begin
      for j:=0 to TreeView1.Items[i].Count-1 do
        d:=d+StrToIntdef(TreeView1.Items[i].Item[j].Text,0);
      TreeView1.Items[i].Text:=TreeView1.Items[i].Text +' '+IntToStr(d); 
     {memo1.Lines.Add(TreeView1.Items[i].Text +' '+IntToStr(d));}
    end;
  end;
end;