TreeView Usage Demo

unit TVUnit;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls;
type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.DFM}
type
 PDllInfo = ^TDllInfo;
 TDllInfo = Record
  InfoType : Byte;
 End;
procedure TForm1.Button1Click(Sender: TObject);
var
 OneNode : TTreeNode;
 DllInfo : PDllInfo;
 I       : Byte;
begin
 with TreeView1.Items do
  begin
   Clear;
   OneNode := Add(nil, 'Child List');
   for I := 0 to 9 do
    begin
     New(DllInfo);
     DllInfo^.InfoType := I;
     AddChildObject(OneNode, 'Child', DllInfo);
    end;
  end;
  TreeView1.FullExpand;
end;
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
 Edit1.Text := '';
 If Assigned(Node.Data) Then
  Begin
   Edit1.Text := Node.Text + ' ' + IntToStr(PDllInfo(Node.Data)^.InfoType);
  End;
end;
end.