学习 TTreeView [7] - Insert、Delete

本例效果图:

26153448_DoKO.gif
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.

 
 
 
 
 

 

 

  

转载于:https://my.oschina.net/hermer/blog/319993

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值