Q&A

  • 두개의 같은구조 트리뷰에서 노드선택시 내용을 가져오려면...
안녕하세요.

같은 구조의 2개의 TreeView에 서로 다른 내용을 추가하였습니다.

제가 알고 싶은 것은 임의의 TreeView의 Node선택시 다른 TreeView의

같은 위치의 Node에 있는 내용을 읽어오고 싶은데 어떻게 하면 되는지요.



내용이 틀리기 때문에 선택된 내용을 가지고 검색하면 안될것 같고,

선택된 Node의 인덱스 또는 위치를 가지고 다른 TreeView의 Node내용을

직접 가져올수는 없는지요. 그림으로 설명드리자면.



TreeView1 TreeView2

|_A |_가

| |_a1 | |_가1

| |

|_B |_나

| |_b1 | |_나1

| |

|_C |_다

|_c1 |_다1



위 그림의 TreeView1에서 b1을 선택하면 TreeView2의 나1을 가져오려 합니다.

고수분들의 조언 부탁드립니다.

수고 하십시요.

2  COMMENTS
  • Profile
    yosule 2001.11.24 01:47
    > 내용이 틀리기 때문에 선택된 내용을 가지고 검색하면 안될것 같고,

    > 선택된 Node의 인덱스 또는 위치를 가지고 다른 TreeView의 Node내용을

    > 직접 가져올수는 없는지요.



    여러가지 방법이 있을수 있습니다. 전 다음과 같은 방법을...

    TreeView 컴포넌트의 AbsoluteIndex 프로퍼티를 이용하시면 됩니다.

    AbsoluteIndex는 실제 TreeView 노드의 인덱스를 말합니다.



    A

    - B

    - C

    B

    - D



    A:0, B:1, C:2

    B:3, D:4



    글로 설명하기가 힘들어 예를 들었습니다. 다른 TreeView의 구조가 같다면

    위의 인덱스만 알면 되겠죠. 아래 코딩 내용입니다.



    procedure TForm1.TreeView1Click(Sender: TObject);

    begin

    if TreeView1.Selected <> nil then

    begin

    //실제 인덱스값을 가져옴

    Edit1.Text := IntToStr(TreeView1.Selected.AbsoluteIndex);

    //다른 TreeView의 Text를 가져옴

    Edit2.Text := TreeView2.Items[TreeView1.Selected.AbsoluteIndex].Text;

    end;

    end;







  • Profile
    CJW 2001.11.24 04:18
    yosule wrote:

    > > 내용이 틀리기 때문에 선택된 내용을 가지고 검색하면 안될것 같고,

    > > 선택된 Node의 인덱스 또는 위치를 가지고 다른 TreeView의 Node내용을

    > > 직접 가져올수는 없는지요.

    >

    > 여러가지 방법이 있을수 있습니다. 전 다음과 같은 방법을...

    > TreeView 컴포넌트의 AbsoluteIndex 프로퍼티를 이용하시면 됩니다.

    > AbsoluteIndex는 실제 TreeView 노드의 인덱스를 말합니다.

    >

    > A

    > - B

    > - C

    > B

    > - D

    >

    > A:0, B:1, C:2

    > B:3, D:4

    >

    > 글로 설명하기가 힘들어 예를 들었습니다. 다른 TreeView의 구조가 같다면

    > 위의 인덱스만 알면 되겠죠. 아래 코딩 내용입니다.

    >

    > procedure TForm1.TreeView1Click(Sender: TObject);

    > begin

    > if TreeView1.Selected <> nil then

    > begin

    > //실제 인덱스값을 가져옴

    > Edit1.Text := IntToStr(TreeView1.Selected.AbsoluteIndex);

    > //다른 TreeView의 Text를 가져옴

    > Edit2.Text := TreeView2.Items[TreeView1.Selected.AbsoluteIndex].Text;

    > end;

    > end;

    >

    >

    >