从三个表建立treeview,想实现如下结构:
全部
 |___中餐厅       //这是营业部门//
 |      |___川菜      //这是大类//
 |      |     |___热菜    //这是小类//
 |      |     |___凉菜 
 |      |___粤菜 
 |
 |___西餐厅
 |      |___咖啡
 |      |      |___黑咖啡
 |      |      |___墨西哥咖啡
 |      |___法国菜       
 |
 |___桑拿
       |___桑拿代码如下
 procedure TSprojectsetForm.FormShow(Sender: TObject);
var
  a,J,I: Integer;
  st:string;
  List:Array[0..5] of TTreeNode;
begin
  qry1.Close;
  qry1.SQL.Clear;
  qry1.SQL.Add('select *from 营业部门表');
  qry1.Open;
  while not qry1.Eof do //加入营业部门
  begin
   list[0]:=tv1.Items.AddChild(tv1.Items[0],qry1.fieldbyname('营业部门名称').AsString);
   list[0].SelectedIndex:=1;
   qry1.Next;
  end;    // while
  qry1.Close;
  qry1.SQL.Clear;
  qry1.SQL.Add('select *from 大类表');
  qry1.Open;
  while not qry1.Eof do //加入大类
  begin
   for a:= 0 to tv1.Items[0].Count - 1 do    // Iterate
   begin
    if tv1.Items[0].Item[a].Text=qry1.FieldByName('营业部门名称').AsString then
     begin
      list[0]:=tv1.Items.AddChild(tv1.Items[0].item[a],qry1.fieldbyname('大类名称').AsString);
      list[0].SelectedIndex:=2;
      break;
     end;
   end;    // for
   qry1.Next;
  end;    // while
  qry1.Close;
  qry1.SQL.Clear;
  qry1.SQL.Add('select *from 小类表');
  qry1.Open;   //添加小类
    while not qry1.Eof do {问题在这儿,叶子节点只能建立热菜、凉菜其他叶子节点没有比如黑咖啡、墨西哥咖啡,请高手指点!}
    begin
      for a:= 0 to tv1.Items[1].Count-1 do    // Iterate
       begin
       st:=tv1.Items[1].Text;
        if tv1.Items[1].Item[a].Text=qry1.FieldByName('大类名称').AsString then
         begin
          list[0]:=tv1.Items.AddChild(tv1.Items[1].item[a],qry1.fieldbyname('小类名称').AsString);
          list[0].SelectedIndex:=2;
          break;
         end;
       end;    // for
      qry1.Next;
    end;    // while
 end;
end.