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.
delphi7 TActionManager TTreeView 简单应用
最新推荐文章于 2020-09-12 14:33:42 发布