如果我想在点击树型菜单的每个结点时打开数据库中的一张表。
怎么做。
树型菜单的结点的响应事件怎么做?

解决方案 »

  1.   

    我原来做过一个,点击树型菜单不同的接点会在右边的dbgrid中显示不同的表。程序有点长,留下你的email,我给你发送过去!
      

  2.   

    是TreeView吗?
    这是我以前用 ListView & Treeview 做的一个东西,单击树节点,在listview中生成显示的详细资料;
    可能对你有用
    procedure TfrmDemoTree.InitListView;
    //初始化ListView
    var
      name,strSQL:string;
      lvItem:TListItem;
      Tempqry:TQuery;
    begin
      Tempqry := TQuery.Create(self);
      try
        lvDemoTree.Items.Clear;       //清空
        name := tvDemoTree.Selected.Text;
        strSQL := ' select id '
                + ' from Tcity '
                + ' where name='''+name+'''';
        ExecQry(strSQL,dmDemoTree.qryLV,true);
        if not dmDemoTree.qryLV.Eof then
        begin
          strSQL := ' select * '
                  + ' from Tcity where parentid='
                  + inttostr(dmDemoTree.qryLV.fieldbyname('id').asinteger);
          ExecQry(strSQL,dmDemoTree.qryLV,true);
          while not dmDemoTree.qryLV.Eof do
          begin
            lvItem := lvDemoTree.Items.Add;
            lvItem.Caption := inttostr(dmDemoTree.qryLV.fieldbyname('id').AsInteger);
            lvItem.SubItems.Add(dmDemoTree.qryLV.fieldbyname('name').AsString);
            strSQL := ' select name '
                    + ' from Tcity '
                    + ' where id='
                    + inttostr(dmDemoTree.qryLV.fieldbyname('parentid').AsInteger);
            ExecQry(strSQL,Tempqry,true);
            lvItem.SubItems.Add(Tempqry.fieldbyname('name').AsString);
            dmDemoTree.qryLV.Next;
          end;
        end;
      finally
        Tempqry.Free;
      end;
    end;
      

  3.   

    procedure Tfrm_main.RefreshCata; var
     node:TTreeNode;
     str,id:String;
    begin
    list_cata.Items.Clear;//清空树视图
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('select * from tablename');
    adoquery1.Open;
     while Not sql_cata.Eof  do
      begin
        str:=adoquery1.fieldbyname('fielname').asstring;
        node:=list_cata.Items.Add(nil,str);//加入树视图内容.
        adoquery1.Next;
      end;
    end;
    不建议你用这种方法来更新如果数据量很大的话,会影响你程序速度,你可以在初始化时全部读出索引,存到字符串列表中,然后对列表进行操作,速度快.
      

  4.   

    谢谢 yhncom_36,我的email是[email protected]