delphi7 TActionManager TTreeView 简单应用

unit TreeView;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ActnList, XPStyleActnCtrls, ActnMan, StdCtrls;

type
  TForm3 = class(TForm)
    tv1: TTreeView;
    actmgr1: TActionManager;   //双击控件内加四个Action 让其分别于四个子节点相对应
    act1: TAction;
    act2: TAction;
    act3: TAction;
    act4: TAction;
    btn1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure act1Execute(Sender: TObject);
    procedure act2Execute(Sender: TObject);
    procedure act3Execute(Sender: TObject);
    procedure act4Execute(Sender: TObject);
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
var
  lGrandpaNode,lFatherNode1,lFatherNode2,lSonNode11,lSonNode12,lSonNode21,lSonNode22: TTreeNode;
  Component: TComponent;
begin
  tv1.Items.Clear;

  lGrandpaNode := tv1.Items.AddChild(nil,'爷爷结点');

  lFatherNode1 := tv1.Items.AddChild(lGrandpaNode, '父节点1');

  lSonNode11 := tv1.Items.AddChild(lFatherNode1, '子节点11');
  lSonNode11.Data := actmgr1.Actions[0];//form创建时 节点与action关联   注意data为pointer类型
  lSonNode12 := tv1.Items.AddChild(lFatherNode1, '子节点12');
  lSonNode12.Data := actmgr1.Actions[1];


  lFatherNode2 := tv1.Items.AddChild(lGrandpaNode, '父节点2');
  
  lSonNode21 := tv1.Items.AddChild(lFatherNode2, '子节点21');
  lSonNode21.Data := actmgr1.Actions[2];
  lSonNode22 := tv1.Items.AddChild(lFatherNode2, '子节点22');
  lSonNode22.Data := actmgr1.Actions[3];

  tv1.FullExpand;
end;

procedure TForm3.act1Execute(Sender: TObject);
begin
  ShowMessage('act1Execute');
end;

procedure TForm3.act2Execute(Sender: TObject);
begin
  ShowMessage('act2Execute');
end;

procedure TForm3.act3Execute(Sender: TObject);
begin
  ShowMessage('act3Execute');
end;

procedure TForm3.act4Execute(Sender: TObject);
begin
  ShowMessage('act4Execute');
end;

procedure TForm3.btn1Click(Sender: TObject);
begin

  if tv1.Selected = nil then
    Exit;
  if (tv1.Selected.Level = 0) or (tv1.Selected.Level = 1) then   //爷爷结点和父结点不处理
  begin
    //不处理
  end
  else begin
    if TAction(tv1.Selected.Data) is TAction then
      TAction(tv1.Selected.Data).Execute;
      end;
end;

end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值