2011-07-26 6 views
2

Il existe une vue arborescente, MultiSelect:=true.Delphi: désélectionner les éléments sélectionnés dans l'arborescence

Si vous souhaitez sélectionner tous les éléments, il est impossible de les désélectionner ou de les sélectionner à nouveau. Je pense que je dois faire TreeView1.Selected.Selected:=false; sur TForm1.TreeView1Click. Mais comment savoir si un clic n'était pas sur les contrôles: éléments, boutons?

Une vidéo: http://liga-installer.realservers.info/select.mp4

est un code ci-dessous normal?

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; 

Merci!

+1

Je ne comprends pas. –

+0

Je peux montrer une vidéo. Je crée un nouveau projet, sélectionne tous les éléments et ne peux pas les désélectionner. – maxfax

+0

Ne m'arrive pas ... –

Répondre

1

Vous êtes censé maintenir la touche Maj enfoncée tout en cliquant sur le premier élément sélectionné. Vous pouvez également désélectionner un élément à la fois en maintenant la touche Ctrl enfoncée.

Mais je suis d'accord que c'est contre-intuitif. Je ferais

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; 
+0

Comment désélectionner tout à la fois en cliquant sur? Il est incommode de maintenir à nouveau une touche et de cliquer. – maxfax

+0

Voilà comment fonctionne le contrôle. (Contrairement à la vue de liste.) –

+0

"Je pense que je dois faire TreeView1.Selected.Selected: = false, sur TForm1.TreeView1Click Mais comment savoir si un clic n'était pas sur les contrôles: éléments, boutons?" – maxfax

Questions connexes