2014-12-11 3 views
0

좋은 하루 ... 내가 여러 아이들을 소유 트 리뷰,이트 리뷰 아동 델파이

:

local 
----- Son 0 
----- Son 1 
---------- Recipe 1 
-------------------- Value1 
----------------------------- Olá1 
----------------------------- Olá2 
------------------------------------ Select Here 
-------------------- Value2 
---------- Revenue 2 
----- Son 2 
----- Son 3 

말, 내가 첫 번째 자식을 얻는 방법, 아들 (여기에서 선택)을 클릭합니다 루트 노드 (아들 1)의 ... 나는 루트 소요 몇 가지 코드를 가지고,하지만 난 클릭 된 그 루트의 자식 싶습니다 :

p: = Form4.TreeView1.Selected.Parent; 
           while Assigned (p.Parent) of the Begin 
               p: = p.Parent; 
           end; 

답변

4

그냥 추적하기 위해 추가 변수를 사용을 "이전 노드"의 루트에 도달하면 이전 하나는 당신이 필요로하는 것입니까? 즉

Prev := nil; 
p := Form4.TreeView1.Selected; 
if(p <> nil)then begin 
    while Assigned(p.Parent) do begin 
     Prev := p; 
     p := p.Parent; 
    end; 
end; 
// Prev, if assigned, should be the node you need 
+0

이 코드는 'Selected'또는 'Selected.Parent'가 nil 인 경우 충돌합니다. –

+0

감사합니다. 지금 바로 수정해야합니다. – ain