2011-01-03 5 views
0

나는 TTreeView는TTreeview 항목 및 레벨 선택?

내가

예를 선택 어떤 수준에 따라 버튼을 활성화하고 내 추가 편집을 해제하고 삭제하는 것을 시도하고있다

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

에 항목 두 가지 수준의 추가를 가지고 :

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; 

레벨을 어떻게 고려합니까?

+2

에 코드를 다시 작성할 수 있습니다

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

Level 속성이 있습니다? –

답변

4

TTreeNode 개체가이 방법으로 당신 * * 등을 고려 수준을 취할 것입니다 방법

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;