제가 몇일전에 TreeView에 대해 질문은 올렸더니 고맙게도 답장을 써주셨더군요.
근데 안타깝게도 아직 처리를 못하고 있답니다.
써주신 예문에 마지막 부분 [Node의 Data값을 사용하는 예]에서 PPersoninfo는 포인터형인거 같은데 선언한건 없고 해서요.
수고스러우시겠지만 [Node의 Data값을 사용하는 예] 좀더 설명해 주시면 정말 감사드리겠습니다. 부탁드릴께요...
김영대 wrote:
> 안녕하세요 김영대입니다
> 아래는 Node의 Text와 Data 프러퍼티를 사용하는 예제입니다
> 설명상 만들어 본 것이므로 실제로 컴파일은 되지 않습니다
> 전체적인 사용법만 보세요
>
> type
> PDeptInfo = ^TDeptInfo;
> TDeptInfo = record
> DEPTNO: String[10];
> DEPTNAME: String;
> end;
>
> function TForm1.RegisterDept(GroupNode: TTreeNode; NodeName, DeptNo, DeptName: String): TTreeNode;
> var
> DeptInfo: PDeptInfo;
> begin
> New(DeptInfo);
> DeptInfo^.DEPTNO := DeptNo; // 부서코드
> DeptInfo^.DEPTNAME := DeptName; // 부서명
> Result := TreeView1.Items.AddChildObject(GroupNode,
> NodeName, // Node의 Text
> DeptInfo); // Node의 Data
> end;
>
> procedure TForm1.B_AddClick(Sender: TObject);
> var
> GroupNode, DeptNode: TTreeNode;
> begin
> if TreeView1.Selected = nil then
> System.Exit;
>
> // 현재 선택된 Node를 상위 Node(여기서는 GroupNode)로 하여
> // 그 아래에 부서 Node 하나를 추가한다
> GroupNode := TreeView1.Selected;
> DeptNode := RegisterDept(GroupNode,
> '첫번째 부서',
> '0001',
> '총무과');
> DeptNode.MakeVisible;
> end;
>
> procedure TForm1.B_ShowClick(Sender: TObject);
> var
> DeptNode: TTreeNode;
> begin
> if TreeView1.Selected = nil then
> System.Exit;
>
> // Node의 Data 값을 사용하는 예
> DeptNode := TreeView1.Selected;
> ShowMessage(PPersonInfo(DeptNode.Data)^.DEPTNO);
> ShowMessage(PPersonInfo(DeptNode.Data)^.DEPTNAME);
> end;
> 제가 몇일전에 TreeView에 대해 질문은 올렸더니 고맙게도 답장을 써주셨더군요.
> 근데 안타깝게도 아직 처리를 못하고 있답니다.
> 써주신 예문에 마지막 부분 [Node의 Data값을 사용하는 예]에서 PPersoninfo는 포인터형인거 같은데 선언한건 없고 해서요.
> 수고스러우시겠지만 [Node의 Data값을 사용하는 예] 좀더 설명해 주시면 정말 감사드리겠습니다. 부탁드릴께요...
>
> 김영대 wrote:
>
> > 안녕하세요 김영대입니다
> > 아래는 Node의 Text와 Data 프러퍼티를 사용하는 예제입니다
> > 설명상 만들어 본 것이므로 실제로 컴파일은 되지 않습니다
> > 전체적인 사용법만 보세요
> >
> > type
> > PDeptInfo = ^TDeptInfo;
> > TDeptInfo = record
> > DEPTNO: String[10];
> > DEPTNAME: String;
> > end;
> >
> > function TForm1.RegisterDept(GroupNode: TTreeNode; NodeName, DeptNo, DeptName: String): TTreeNode;
> > var
> > DeptInfo: PDeptInfo;
> > begin
> > New(DeptInfo);
> > DeptInfo^.DEPTNO := DeptNo; // 부서코드
> > DeptInfo^.DEPTNAME := DeptName; // 부서명
> > Result := TreeView1.Items.AddChildObject(GroupNode,
> > NodeName, // Node의 Text
> > DeptInfo); // Node의 Data
> > end;
> >
> > procedure TForm1.B_AddClick(Sender: TObject);
> > var
> > GroupNode, DeptNode: TTreeNode;
> > begin
> > if TreeView1.Selected = nil then
> > System.Exit;
> >
> > // 현재 선택된 Node를 상위 Node(여기서는 GroupNode)로 하여
> > // 그 아래에 부서 Node 하나를 추가한다
> > GroupNode := TreeView1.Selected;
> > DeptNode := RegisterDept(GroupNode,
> > '첫번째 부서',
> > '0001',
> > '총무과');
> > DeptNode.MakeVisible;
> > end;
> >
> > procedure TForm1.B_ShowClick(Sender: TObject);
> > var
> > DeptNode: TTreeNode;
> > begin
> > if TreeView1.Selected = nil then
> > System.Exit;
> >
> > // Node의 Data 값을 사용하는 예
> > DeptNode := TreeView1.Selected;
> > ShowMessage(PPersonInfo(DeptNode.Data)^.DEPTNO);
> > ShowMessage(PPersonInfo(DeptNode.Data)^.DEPTNAME);
> > end;
>
>
안녕하세요 김영대입니다
제가 만든 프로그램의 일부를 고쳐서 올리다 보니
완전히 바꾸지를 못했네요... 죄송...
근데 소스를 유심히 보시면 금방찾을 수 있는데...
PPersonInfo -> PDeptInfo