2011-01-03 1 views
0

J'ai un TTreeViewTTreeview Sélectionnez un objet et un niveau?

ajouter deux niveaux d'articles à

Test 1 Parent 
    Test 1 Child 
Test 2 Parent 
    Test 2 Child A 
    Test 2 Child B 
    Test 2 Child C 

Je suis en train d'activer et de désactiver mon Ajouter, modifier et supprimer des boutons en fonction de ce niveau est sélectionné

Exemple :

procedure TfrmMain.UpdateBtns; 
begin 
btnEditParent.Enabled:= (treeview.Focused) AND (treeview.Selected <> nil);  btnDeleteParent.Enabled:= (treeview.Focused) AND (treeview.Selected <> nil); 
btnAddChild.Enabled:= (treeview.Focused) AND (treeview.Selected <> nil); 
btnEditChild.Enabled:= (treeview.Focused) AND (treeview.Selected <> nil); 
btnDeleteChild.Enabled:= (treeview.Focused) AND (treeview.Selected <> nil); 
end; 

Comment puis-je prendre en compte les niveaux?

+2

Comment voulez-vous * comme * à prendre en considération les niveaux? –

Répondre

4

l'objet TTreeNode a une propriété Level

var 
Node : TTreeNode; 
begin 
Node:=TreeView1.Selected; 
//Node.Level //The first Level is 0 

end; 

vous pouvez réécrire votre code de cette manière

var 
    Node : TTreeNode; 
    begin 
    Node:=TreeView.Selected; 
    if Node<>nil then 
    begin 
     btnEditParent.Enabled := (Node.Level=0); 
     btnDeleteParent.Enabled:= (Node.Level=0); 
     btnAddChild.Enabled := (Node.Level=0); 
     btnEditChild.Enabled := (Node.Level>0); 
     btnDeleteChild.Enabled := (Node.Level>0); 
    end; 
    end; 
Questions connexes