Q&A

  • 현재 선택한 노드가 갖고 있는 모든 노드들 중에서 맨 하위노드의 인덱스값 ?
트리뷰에서 현재 어떤 노드를 셀렉트했을때, 그 자식노드들 중에서 가장 마지막 하위 노드의

인덱스번호를 알 수 있는 방법이 없을까요 ? ㅜ.ㅜ

자세히 설명하면요..다음과 같습니다... -.-





























만약, 현재 나 노드가 셀렉트 되어 있다면 그 자식노드로 다와 라가 있잖아요..

즉 다시말해서, 나가 가지고 있는 노드는 다와 라인데, 만약에 나노드가 셀렉트 되었을때,

나가 가지고 있는 모든 하위노드들 중에서 가장 마직막 하위노드인 카노드의 인덱스 값을

알 수는 없을까요 ?



나 노드에 셀렉트된 상태에서...

var

index_num : integer;

begin

if TreeView1.Selected.HasChildren then

index_num := TreeView1.Selected.getLastChild.index;

else

~~~~~~~~~~~

end

이렇게 하면 카노드의 인덱스 값을 얻는 줄 알았더니 다의 인덱스 값을 가지더군요.. ㅡ.ㅡ

어떻게 하면 카노드의 인텍스 값을 얻을 수 있을까요...

고수님들의 도움이 또 필요합니다. ㅠ.ㅠ



2  COMMENTS
  • Profile
    박용철 2000.09.08 08:01
    procedure TForm1.Button1Click(Sender: TObject);

    begin

    with TreeView1 do

    while Selected.HasChildren do

    Selected := Selected.GetLastChild;

    ShowMessage(IntToStr(TreeView1.Selected.SelectedIndex));

    end;



    참고하세요.

    그럼, 이만.



    써니 wrote:

    > 트리뷰에서 현재 어떤 노드를 셀렉트했을때, 그 자식노드들 중에서 가장 마지막 하위 노드의

    > 인덱스번호를 알 수 있는 방법이 없을까요 ? ㅜ.ㅜ

    > 자세히 설명하면요..다음과 같습니다... -.-

    >

    > 가

    > 나

    > 다

    > 마

    > 바

    > 아

    > 차

    > 카

    > 라

    > 사

    > 타

    > 하

    >

    > 만약, 현재 나 노드가 셀렉트 되어 있다면 그 자식노드로 다와 라가 있잖아요..

    > 즉 다시말해서, 나가 가지고 있는 노드는 다와 라인데, 만약에 나노드가 셀렉트 되었을때,

    > 나가 가지고 있는 모든 하위노드들 중에서 가장 마직막 하위노드인 카노드의 인덱스 값을

    > 알 수는 없을까요 ?

    >

    > 나 노드에 셀렉트된 상태에서...

    > var

    > index_num : integer;

    > begin

    > if TreeView1.Selected.HasChildren then

    > index_num := TreeView1.Selected.getLastChild.index;

    > else

    > ~~~~~~~~~~~

    > end

    > 이렇게 하면 카노드의 인덱스 값을 얻는 줄 알았더니 다의 인덱스 값을 가지더군요.. ㅡ.ㅡ

    > 어떻게 하면 카노드의 인텍스 값을 얻을 수 있을까요...

    > 고수님들의 도움이 또 필요합니다. ㅠ.ㅠ

    >

  • Profile
    김경식 2000.09.08 07:27
    우선 써니님의 말씀대로 "나"가 선택된 상태에서 코딩하신 그대로 하면 index_num의 값은 "다"가 아니라 "라"의 값을 가지겠죠... 아마도 오타를 하신듯... ^^



    그리고, 질문하신 내용은 저도 초보라서 쉽게 설명드릴 방법은 없습니다만 트리뷰에는 Level이라는 속성이 있습니다. 말 그대로 수준을 나타내는데요... "가"는 Level이 0입니다.

    그리고, "나"와 "하"는 1, "다","라"는 2.... 이런 식으로 Level을 가지죠... 그러니까 "카"는 Level이 가장 큰 놈이겠군요.



    그럼 Level이 가장 큰 놈의 인덱스만 가지고 오면 된다는 얘긴데...



    저도 초보라서 그런지 제가 아는 한도에서는 바로 그 인덱스를 가지고 올 수있는 방법이 없는 걸로 알고 있습니다. 그렇기 때문에 먼저 가장 상위의 노드의 값을 가져온 다음 그 다음 노드의 값을 가져 와서 비교하고 다음 노드가 크다면 그 값을 가지고 있고, 또 다음 노드의 값을 가지고 와서 비교하는 방식으로 밖에는 다른 방법은 저도 모릅니다... ^^



    소스를 알려드리면 좋겠지만, 그거 해 볼려면 저도 시간이 많이 걸리는 관계로(^^) 도움이 될 만한 사이트를 알려드립니다. 트리뷰에 관해서 많은 것을 아시게 될겁니다. 저도 여기 게시판에서 본 사이트 거든요. 검색하면 잘 나오지만... 이왕 들어 왔으니...



    http://users.iafrica.com/d/da/dart/Delphi/TTreeView/TreeView.html

    도움이 되시길...



    써니 wrote:

    > 트리뷰에서 현재 어떤 노드를 셀렉트했을때, 그 자식노드들 중에서 가장 마지막 하위 노드의

    > 인덱스번호를 알 수 있는 방법이 없을까요 ? ㅜ.ㅜ

    > 자세히 설명하면요..다음과 같습니다... -.-

    >

    > 가

    > 나

    > 다

    > 마

    > 바

    > 아

    > 차

    > 카

    > 라

    > 사

    > 타

    > 하

    >

    > 만약, 현재 나 노드가 셀렉트 되어 있다면 그 자식노드로 다와 라가 있잖아요..

    > 즉 다시말해서, 나가 가지고 있는 노드는 다와 라인데, 만약에 나노드가 셀렉트 되었을때,

    > 나가 가지고 있는 모든 하위노드들 중에서 가장 마직막 하위노드인 카노드의 인덱스 값을

    > 알 수는 없을까요 ?

    >

    > 나 노드에 셀렉트된 상태에서...

    > var

    > index_num : integer;

    > begin

    > if TreeView1.Selected.HasChildren then

    > index_num := TreeView1.Selected.getLastChild.index;

    > else

    > ~~~~~~~~~~~

    > end

    > 이렇게 하면 카노드의 인덱스 값을 얻는 줄 알았더니 다의 인덱스 값을 가지더군요.. ㅡ.ㅡ

    > 어떻게 하면 카노드의 인텍스 값을 얻을 수 있을까요...

    > 고수님들의 도움이 또 필요합니다. ㅠ.ㅠ

    >