学习 TTreeView [7] - Insert、Delete

本例效果图:

学习 TTreeView [7] - Insert、Delete

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ComCtrls, StdCtrls, Grids, ExtCtrls;



type

  TForm1 = class(TForm)

    TreeView1: TTreeView;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure TForm1.FormCreate(Sender: TObject);

var

  Nodes: TTreeNodes;

  node: TTreeNode;

begin

  TreeView1.Align := alLeft;

  Nodes := TreeView1.Items;

  node := Nodes.Add(nil, '一连长');

  node := Nodes.AddChild(node, '一排长');

  node := Nodes.AddChild(node, '一班长');

  node := Nodes.AddChild(node, '战士1');

  Nodes.Add(node, '战士2');

  Nodes.Add(node, '战士3');

  Nodes.Add(node, '战士4');

  node := node.Parent;

  Nodes.Add(node, '二班长');

  Nodes.Add(node, '三班长');

  node := node.Parent;

  Nodes.Add(node, '二排长');

  Nodes.Add(node, '三排长');

  node := node.Parent;

  Nodes.Add(node, '二连长');

  Nodes.Add(node, '三连长');

end;



{初始化}

procedure TForm1.Button1Click(Sender: TObject);

begin

  TreeView1.Items.Clear;

  FormCreate(nil);

  TButton(Sender).Caption := '初始化';

end;



{删除}

procedure TForm1.Button2Click(Sender: TObject);

var

  node: TTreeNode;

begin

  if not Boolean(TreeView1.Items) then Exit; {如果 TreeView1 无内容}

  if TreeView1.SelectionCount = 0 then Exit; {如果无选择}

  node := TreeView1.Selected;

  node.Delete;



  TButton(Sender).Caption := '删除';

end;



{删除它的所有下级}

procedure TForm1.Button3Click(Sender: TObject);

var

  node: TTreeNode;

begin

  if not Boolean(TreeView1.Items) then Exit;

  if TreeView1.SelectionCount = 0 then Exit;

  node := TreeView1.Selected;

  if node.HasChildren then node.DeleteChildren

  else ShowMessage(node.Text + ' 没有下级');



  TButton(Sender).Caption := '删除下级';

end;



{用 TTreeNodes 删除}

procedure TForm1.Button4Click(Sender: TObject);

var

  node: TTreeNode;

begin

  if not Boolean(TreeView1.Items) then Exit;

  if TreeView1.SelectionCount = 0 then Exit;

  node := TreeView1.Selected;

  TreeView1.Items.Delete(node);



  TButton(Sender).Caption := '用 TTreeNodes 删除';

end;



{插入, 只能通过 TTreeNodes}

procedure TForm1.Button5Click(Sender: TObject);

var

  node: TTreeNode;

begin

  if not Boolean(TreeView1.Items) then Exit;

  if TreeView1.SelectionCount = 0 then Exit;

  node := TreeView1.Selected;

  TreeView1.Items.Insert(node, '新成员');



  TButton(Sender).Caption := '插入';

end;



end.


 
   

你可能感兴趣的:(treeview)