gpt4 book ai didi

Delphi:取消选择 TreeView 中的选定项目

转载 作者:行者123 更新时间:2023-12-03 15:57:21 24 4
gpt4 key购买 nike

有一个 TreeView ,MultiSelect:=true

如果选择所有项目,则无法取消选择或再次选择,但其他项目除外。我想我需要在 TForm1.TreeView1Click 上执行 TreeView1.Selected.Selected:=false; 。但如何知道点击是否不是在控件上:项目、按钮?

视频:http://liga-installer.realservers.info/select.mp4

代码是否低于正常值?

procedure TForm1.TreeView1Click(Sender: TObject);
var
Item: TTreeNode;
begin

Item :=TTreeView(Sender).GetNodeAt(TTreeView(Sender).ScreenToClient(Mouse.CursorPos).X,
TTreeView(Sender).ScreenToClient(Mouse.CursorPos).y);

if (not Assigned(Item)) and (TTreeView(Sender).SelectionCount>0) then TTreeView(Sender).Select(nil, []);
end;

谢谢!

最佳答案

您应该在单击第一个选定项目的同时按住 Shift 键。您还可以通过按住 Ctrl 键单击一项来一次取消选择一项。

但我同意这是违反直觉的。我愿意

procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i: Integer;
begin
if not Assigned(TreeView1.GetNodeAt(X, Y)) then
for i := 0 to TreeView1.Items.Count - 1 do
TreeView1.Items[i].Selected := false;
end;

关于Delphi:取消选择 TreeView 中的选定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com