先判断它是不是叶子就可以了procedure TForm1.TreeView1Click(Sender: TObject); begin if treeview1.Selected<>nil then if not treeview1.Selected.HasChildren begin //some code end; end;
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;// 這招肯定能解決問題
begin
if treeview1.Selected<>nil then
if not treeview1.Selected.HasChildren
begin
//some code
end;
end;
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;// 這招肯定能解決問題
Begin
//
end;