给你个例子 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Grids, DBGrids;type TForm1 = class(TForm) TreeView1: TTreeView; Button1: TButton; CheckBox1: TCheckBox; StringGrid1: TStringGrid; Button2: TButton; procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var HT : THitTests; begin if (CheckBox1.Checked) and (Sender is TTreeView) then begin with Sender as TTreeView do begin HT := GetHitTestInfoAt(X,Y); if (htOnItem in HT) then Items.Delete(GetNodeAt(X,Y)); end; end;end;procedure TForm1.Button1Click(Sender: TObject);//动态添加节点 var MyTreeNode1, MyTreeNode2: TTreeNode; begin with TreeView1.Items do begin Clear; { remove any existing nodes } MyTreeNode1 := Add(nil, 'RootTreeNode1'); { Add a root node } { Add a child node to the node just added } AddChild(MyTreeNode1,'ChildNode1'); AddChild(MyTreeNode1,'ChildNode1') ; {Add another root node} MyTreeNode2 := Add(MyTreeNode1, 'RootTreeNode2'); {Give MyTreeNode2 to a child } AddChild(MyTreeNode2,'ChildNode2'); {Change MyTreeNode2 to ChildNode2 } { and add a child node to it} MyTreeNode2 := TreeView1.Items[3]; AddChild(MyTreeNode2,'ChildNode2a'); {Add another child to ChildNode2, after ChildNode2a } Add(MyTreeNode2,'ChildNode2b'); {add another root node} Add(MyTreeNode1, 'RootTreeNode3'); end;end;procedure TForm1.Button2Click(Sender: TObject); begin TreeView1.SaveToFile('d:\wudi.txt'); //保存到文件 end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Grids, DBGrids;type
TForm1 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
CheckBox1: TCheckBox;
StringGrid1: TStringGrid;
Button2: TButton;
procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
HT : THitTests;
begin
if (CheckBox1.Checked) and (Sender is TTreeView) then
begin
with Sender as TTreeView do
begin
HT := GetHitTestInfoAt(X,Y);
if (htOnItem in HT) then
Items.Delete(GetNodeAt(X,Y));
end;
end;end;procedure TForm1.Button1Click(Sender: TObject);//动态添加节点
var
MyTreeNode1, MyTreeNode2: TTreeNode;
begin
with TreeView1.Items do
begin
Clear; { remove any existing nodes }
MyTreeNode1 := Add(nil, 'RootTreeNode1'); { Add a root node }
{ Add a child node to the node just added }
AddChild(MyTreeNode1,'ChildNode1');
AddChild(MyTreeNode1,'ChildNode1') ; {Add another root node}
MyTreeNode2 := Add(MyTreeNode1, 'RootTreeNode2');
{Give MyTreeNode2 to a child }
AddChild(MyTreeNode2,'ChildNode2'); {Change MyTreeNode2 to ChildNode2 }
{ and add a child node to it}
MyTreeNode2 := TreeView1.Items[3];
AddChild(MyTreeNode2,'ChildNode2a'); {Add another child to ChildNode2, after ChildNode2a }
Add(MyTreeNode2,'ChildNode2b'); {add another root node}
Add(MyTreeNode1, 'RootTreeNode3');
end;end;procedure TForm1.Button2Click(Sender: TObject);
begin
TreeView1.SaveToFile('d:\wudi.txt'); //保存到文件
end;end.