실력은 엄꼬 궁금한것만 많은 왕초봅니다....
어제 올려주신 Q&A를 나름대로 봤는데요, 그래도 제 문제는 해결되지 않습니다.
어떤분이 Tag에 부서코드를 넣어보라구 멜을 주셨는데 TreeView Item 에는 Tag property가 엄씁디다. 다만 TreeView의 Tag만 있을뿐...--;
그래서 여기저기 돌다다닌 결과
TreeVeiw의 상위 Object인 Treenode에 data property가 있더군요.
* Data property (run-time)
- 선언: property Data: Pointer;
- 설명: TTreeView control의 tree node의 Data를 pointer 형으로 가지고 있다.
Pointer 형을 어떻게 활용하죠? Help에는 ^를 사용하라고만 나와있는데..
누구의 Pointer를 어떻게 활요해서 표현하는건지...
이걸 활용하면 부서코드를 내장한 부서계층도를 나타낼수도 있을거 같구..
여러 고수님들.. 많은 조언부탁드립니다.
꼭 Data property사용이 아니더라도 부서코드를 내장한 부서계층도를 만들수 있음 좋겠습니다..
> 실력은 엄꼬 궁금한것만 많은 왕초봅니다....
> 어제 올려주신 Q&A를 나름대로 봤는데요, 그래도 제 문제는 해결되지 않습니다.
> 어떤분이 Tag에 부서코드를 넣어보라구 멜을 주셨는데 TreeView Item 에는 Tag property가 엄씁디다. 다만 TreeView의 Tag만 있을뿐...--;
> 그래서 여기저기 돌다다닌 결과
>
> TreeVeiw의 상위 Object인 Treenode에 data property가 있더군요.
>
> * Data property (run-time)
> - 선언: property Data: Pointer;
> - 설명: TTreeView control의 tree node의 Data를 pointer 형으로 가지고 있다.
>
> Pointer 형을 어떻게 활용하죠? Help에는 ^를 사용하라고만 나와있는데..
> 누구의 Pointer를 어떻게 활요해서 표현하는건지...
> 이걸 활용하면 부서코드를 내장한 부서계층도를 나타낼수도 있을거 같구..
>
> 여러 고수님들.. 많은 조언부탁드립니다.
> 꼭 Data property사용이 아니더라도 부서코드를 내장한 부서계층도를 만들수 있음 좋겠습니다..
안녕하세요 김영대입니다
아래는 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(PDeptInfo(DeptNode.Data)^.DEPTNO);
ShowMessage(PDeptInfo(DeptNode.Data)^.DEPTNAME);
end;