120 lines
3.2 KiB
Plaintext
120 lines
3.2 KiB
Plaintext
type E_TreeViewmain=class(tdcreateform)
|
|
uses tslvcl;
|
|
treeview1:ttreeview;
|
|
btn1:tbtn;
|
|
btn2:tbtn;
|
|
btn3:tbtn;
|
|
btn4:tbtn;
|
|
btn5:tbtn;
|
|
btn6:tbtn;
|
|
btn7:tbtn;
|
|
btn8:tbtn;
|
|
function Create(AOwner);override; //构造
|
|
begin
|
|
inherited;
|
|
end
|
|
function btn8_clk(o;e);virtual;
|
|
begin
|
|
treeview1.HasLine := not treeview1.HasLine;
|
|
end
|
|
|
|
function e_treeviewmain1_close(o;e);virtual;
|
|
begin
|
|
{**
|
|
@explan(说明) 主窗口关闭回调 %%
|
|
@param(e)(tuievent) 消息对象 %%
|
|
@param(o)(ttimer) 当前主窗口 %%
|
|
**}
|
|
if MessageBoxA('是否关闭当前窗口','关闭',MB_YESNO,o)<>IDYES then e.skip := true;
|
|
end
|
|
function btn7_clk(o;e);virtual;
|
|
begin
|
|
Messageboxa(tostn(treeview1.RootNode.toarray()),"数据",0,self);
|
|
end
|
|
function btn6_clk(o;e);virtual; //修改文本
|
|
begin
|
|
nd := treeview1.CurrentNode;
|
|
if not nd then return;
|
|
r := nd.caption;
|
|
wd := new TInPutQuerys(self);
|
|
wd.parent := self;
|
|
d := array(("Name":"b","value":r,"caption":"标题名:"));
|
|
wd.SetData(d);
|
|
if wd.ShowDlg(r1,"输入标题") then
|
|
begin
|
|
nd.caption := r1["b"];
|
|
treeview1.InvalidateItem(nd);
|
|
end
|
|
end
|
|
|
|
function btn4_clk(o;e);virtual;//checkbox
|
|
begin
|
|
treeview1.checkbox := not treeview1.checkbox;
|
|
treeview1.InvalidateRect(nil,false);
|
|
end
|
|
function btn5_clk(o;e);virtual; //删除选择
|
|
begin
|
|
nd := treeview1.CurrentNode;
|
|
if nd then
|
|
begin
|
|
nd.Recycling();
|
|
end
|
|
end
|
|
function btn3_clk(o;e);virtual;//插入子节点
|
|
begin
|
|
nd := treeview1.CurrentNode;
|
|
if nd then
|
|
begin
|
|
nnd := treeview1.CreateTreeNode();
|
|
nnd.caption := datetimetostr(now());
|
|
nnd.parent := nd;
|
|
treeview1.SetSel(nnd);
|
|
end
|
|
end
|
|
function btn2_clk(o;e);virtual; //初始化
|
|
begin
|
|
rnd := treeview1.RootNode;
|
|
ndsz := treeview1.CreateTreeNode();
|
|
ndsz.caption := "深圳";
|
|
ndsz.parent := rnd;
|
|
ndgz := treeview1.CreateTreeNode();
|
|
ndgz.caption := "广州";
|
|
ndgz.parent := rnd;
|
|
|
|
for i,v in array("福田","罗湖","宝安","龙岗","盐田") do
|
|
begin
|
|
nd := treeview1.CreateTreeNode();
|
|
nd.caption := v;
|
|
nd.parent := ndsz;
|
|
end
|
|
for i,v in array("白云","花都","天河") do
|
|
begin
|
|
nd := treeview1.CreateTreeNode();
|
|
nd.caption := v;
|
|
nd.parent := ndgz;
|
|
end
|
|
|
|
end
|
|
function btn1_clk(o;e);virtual; //清空
|
|
begin
|
|
treeview1.RootNode.RecyclingChildren();
|
|
end
|
|
|
|
function DoControlAlign();override;//对齐子控件
|
|
begin
|
|
//当窗口大小改变时,该函数会被调用,
|
|
//可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小
|
|
//如果自己处理了子控件的对齐,就可以去掉 inherited
|
|
inherited;
|
|
end
|
|
function Recycling();override; //回收变量
|
|
begin
|
|
inherited;
|
|
ci := self.classinfo(); //将成员变量赋值为nil避免循环引用
|
|
for i,v in ci["members"] do
|
|
begin
|
|
invoke(self,v["name"],nil);
|
|
end
|
|
end
|
|
end
|