본문 바로가기

공부해봅시다/Object Pascal(Delphi)

[Delphi] TreeView 컴포넌트 활용하기 팁


1. [Delphi] TreeView 컴포텉느 활용하기 팁





설명) 우선 노드를 생성하고 해당 (세번째 노드 만 클릭 허용) 노드를 클릭시 각 노드마다 입력한 Hint 값을 출력하게 한다.

 노드 생성 코드

procedure TForm1.Button1Click(Sender: TObject);
var

 Root,Sub,Tree : TTreeNode;
 RecPtr:PRec;

begin

  TreeView1.Items.Clear;

  New(RecPtr);
  RecPtr^.Hint:='Hint 루트1';
  RecPtr^.Name:='루트1 노드';
  Root:= Treeview1.Items.AddObject(nil, RecPtr^.Name, RecPtr);
  Root.ImageIndex:=0;

  New(RecPtr);
  RecPtr^.Hint:='Hint 서브1';
  RecPtr^.Name:='서브 노드';
  Sub:= Treeview1.Items.AddChildObject(Root, RecPtr^.Name, RecPtr);
  Sub.ImageIndex:=0;

  New(RecPtr);
  RecPtr^.Hint:='Hint 서브의 자식1';
  RecPtr^.Name:='서브의 자식 노드';
  Tree:= Treeview1.Items.AddChildObject(Sub, RecPtr^.Name, RecPtr);
  Tree.ImageIndex:=1;
  Tree.SelectedIndex:=1;

  New(RecPtr);
  RecPtr^.Hint:='Hint 루트2';
  RecPtr^.Name:='루트2 노드';
  Root:= Treeview1.Items.AddObject(nil, RecPtr^.Name, RecPtr);
  Root.ImageIndex:=0;

  New(RecPtr);
  RecPtr^.Hint:='Hint 서브1';
  RecPtr^.Name:='서브 노드';
  Sub:= Treeview1.Items.AddChildObject(Root, RecPtr^.Name, RecPtr);
  Sub.ImageIndex:=0;

  New(RecPtr);
  RecPtr^.Hint:='Hint 서브의 자식1';
  RecPtr^.Name:='서브의 자식 노드';
  Tree:= Treeview1.Items.AddChildObject(Sub, RecPtr^.Name, RecPtr);
  Tree.ImageIndex:=1;
  Tree.SelectedIndex:=1;

 end;



 해당 노드의 힌트값 출력 소스

procedure TForm1.TreeView1DblClick(Sender: TObject);
var

p:PRec;
tree:TTreeNode;

begin

tree:=TreeView1.Selected;
New(p);
p:=tree.Data;

 if Treeview1.Selected.Level > 1 then begin   // 노드 깊이가 1 이상일시 실행
   showmessage(p^.Hint);
 end;

end;



임시 코드라 수시로 내용을 삽입 수정 할수 있습니다.
참고해주시기 바랍니다.