如何操作树型菜单的时候,点击节点不触发事件,而是在点击条目的时候才触发事件,就像CHM帮助一样(注:点击任何条目我都要触发事件),不知有什么方法或者有什么控件能实现啊

解决方案 »

  1.   

    你可以给节点赋上不同的属性啊,根据他判断是不是目录。TreeView1.Selected.Data 可以指向一个结构,你可以在里面保存各种信息。
      

  2.   

    先判断它是不是叶子就可以了procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      if treeview1.Selected<>nil then
        if not treeview1.Selected.HasChildren
        begin
          //some code
        end;
    end;
      

  3.   

    procedure TfrmTables.tvTablesMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
      vTreeNode: TTreeNode;
    begin
      vTreeNode := tvTables.GetNodeAt(X, Y);
      if Assigned(vTreeNode) and (Button = mbLeft) then
        if (htOnLabel in tvTables.GetHitTestInfoAt(X, Y)) then
          vTreeNode.Selected := True
        else vTreeNode.Selected := False; 
    end;// 這招肯定能解決問題
      

  4.   

    if (Tree.Selected.Index <>-1 )   then
    Begin
    //
    end;
      

  5.   

    不知道你说的触发事件指的是什么事件呢?这些事件是由vcl实现的,一定会触发,只是你在合适的“地方”处理(有可能是抛弃)这些事件罢了。