请问我想单击不同item触发不同事件,这个click事件如何写?
解决方案 »
- post https报错:HTTP/1.1 400 Bad Request
- 想开一家软件公司,到底做什么项目好呢
- WebBrowser如何才能获取新点击链接的地址。
- 有意思,d7到2k9相互不能调用对方的dll否则就是异常!
- 能不能获取到控件listbox里被选择的项目的名称
- 问个combobox控件的问题。
- 请教一个关于线程的简单问题?
- 在Delphi中对路桥收费系统中的红绿灯进行控制
- 如果花了N长时间下载一个10M软件运行时却发现少了一个文件……谁能帮帮我???
- 请教,谁能说说关于Maskedit怎么判断不为空!
- !!!!!!!!调用(启动)别的程序用什么指令?????
- 如何在一个Unit中引用另一个Unit中的变量(同一个工程)?能否为一个工程中的函数统一存放在一个Unit中?
begin
case treeview1.Selected.Level of
0:showmessage('你选中了零层结点') ;
1:showmessage('你选中了一层结点') ;
2:showmessage('你选中了二层结点')
end;
end;
我要实现
--a
--a1
--a2
即单击a1,a2有不同的事件
begin
showmessage('你选中了我 :'+treeview1.Selected.text) ;
end;
树的不同节点的判断:1、节点处在不同的层次(level)可以通过Node的Level来判断!
2、节点有不同的内容。可以用Node的text来判断!
3、不同的节点数据,可以用data来判断。
目前我发现用的最多的就是这几种情况了,其他的情况一般不用啊!
树表NTree:
节点号 NTree01 int NOT NULL
节点名称 NTree02 varchar(30) NULL
节点关联编号 NTree03 varchar(30) NULL
引用节点号 NTree04 int NULL
状态 NTree05 varchar(8) NULL
根节点 NTree06 varchar(20) NOT NULL
SELECT * FROM NTree
WHERE NTree06 =:Root
order by NTree01 ASCprocedure Tfrm_PlanNTree.RefreshNTree;
var
CurrentNode, ParentNode : TTreeNode;
sID ,sName : String;
procedure ShowNTree(iImageIndex : Integer; iSelectedIndex: Integer);
begin
if (DMNTree.Q_NTree.FieldByName('NTree03').AsString <> '')
and (DMNTree.Q_NTree.FieldByName('NTree05').AsString = '计划' ) then
begin
CurrentNode := LVNTree.Items.AddChild(ParentNode,
DMNTree.Q_NTree.FieldByName('NTree02').AsString );
// +'['+ DMNTree.Q_NTree.FieldByName('NTree03').AsString +']' );
end
else if (DMNTree.Q_NTree.FieldByName('NTree03').AsString <> '')
and (DMNTree.Q_NTree.FieldByName('NTree05').AsString = '计划清单' ) then
begin
CurrentNode := LVNTree.Items.AddChild(ParentNode,
GetGoodsNameByNTree03(DMNTree.Q_NTree.FieldByName('NTree03').AsString));
end
else if (DMNTree.Q_NTree.FieldByName('NTree03').AsString = '') then
begin
CurrentNode := LVNTree.Items.AddChild(ParentNode,
DMNTree.Q_NTree.FieldByName('NTree02').AsString);
end;
CurrentNode.ImageIndex := iImageIndex;
CurrentNode.SelectedIndex := iSelectedIndex;
end;
begin
LVNTree.Items.Clear;
DMNTree.Q_NTree.Close;
DMNTree.Q_NTree.Parameters.ParamValues['Root'] := Root;
DMNTree.Q_NTree.Open;
sID := DMNTree.Q_NTree.FieldByName('NTree03').AsString ;
sName := DMNTree.Q_NTree.FieldByName('NTree02').AsString ;
if DMNTree.Q_NTree.IsEmpty then
begin
LVNTree.Items.AddChild(nil,Root);
LVNTree.Items[0].ImageIndex := 0;
LVNTree.Items[0].SelectedIndex := 0;
DMNTree.Q_NTree.Append;
DMNTree.Q_NTree.FieldByName('NTree01').AsInteger := 0;
DMNTree.Q_NTree.FieldByName('NTree02').AsString := Root;
DMNTree.Q_NTree.FieldByName('NTree06').AsString := Root;
DMNTree.Q_NTree.FieldByName('NTree05').AsString := '项目';//状态
DMNTree.Q_NTree.Post;
Exit;
end;
while not DMNTree.Q_NTree.Eof do
begin
if DMNTree.Q_NTree.FieldByName('NTree04').AsString = '' then
begin
CurrentNode := LVNTree.Items.AddChild(nil,DMNTree.Q_NTree.FieldByName('NTree02').AsString);
CurrentNode.ImageIndex := 0;
CurrentNode.SelectedIndex := 0;
end
else
begin
ParentNode := LVNTree.Items[DMNTree.Q_NTree.FieldValues['NTree04']];
if DMNTree.Q_NTree.FieldByName('NTree05').AsString = '项目' then
begin
ShowNTree(1,2);
end
else if DMNTree.Q_NTree.FieldByName('NTree05').AsString = '计划' then
begin
ShowNTree(3,4);
end
else if DMNTree.Q_NTree.FieldByName('NTree05').AsString = '计划清单' then
begin
ShowNTree(5,6);
end;
end;
DMNTree.Q_NTree.Next;
end;
end;