procedure TForm1.TreeView1Click(Sender: TObject); var a:integer; begin if TreeView1.Selected.HasChildren=false then begin a:= StrToInt(TreeView1.Selected.Text) + StrToInt(TreeView1.Selected.Parent.Text)+ StrToInt(TreeView1.Selected.Parent.Parent.Text); ShowMessage(IntToStr(a)); end; end;
procedure TForm1.TreeView1Click(Sender: TObject); var a:integer; begin if TreeView1.Selected.HasChildren=false then begin a:= StrToInt(TreeView1.Selected.Text) + StrToInt(TreeView1.Selected.Parent.Text)+ StrToInt(TreeView1.Selected.Parent.Parent.Text); ShowMessage(IntToStr(a)); end; end;
可以加点判断: if TreeView1.Items.Count<1 then Exit; if TreeView1.Selected=nil then Exit;procedure TForm1.TreeView1Click(Sender: TObject); var a:integer; begin if TreeView1.Items.Count<1 then Exit; if TreeView1.Selected=nil then Exit; if TreeView1.Selected.HasChildren=false then begin a:= StrToIntDef(TreeView1.Selected.Text,0) + StrToIntDef(TreeView1.Selected.Parent.Text,0)+ StrToIntDef(TreeView1.Selected.Parent.Parent.Text,0); ShowMessage(IntToStr(a)); end;end;
楼上的几位会出现不管点任何地方(那怕是空白地方)都响应的现象,效果不是太好的,本人改成只有点击到结点(第三层的),才响应 procedure TForm1.TreeView1Click(Sender: TObject); var pt:TPoint; node:TTreeNode; begin pt:=TreeView1.ScreenToClient(mouse.CursorPos); node:=TreeView1.GetNodeAt(pt.X,pt.Y); if (node<>nil)and(node.Level=2) then //如果点击了结点并且是第三层的话 begin //取得年月日的相加 edit1.Text:=node.Parent.Parent.Text+node.Parent.Text+node.Text; //我想楼主不一定是想要年月日的整数相加吧,我权且改成字符串相加了 end; end;
var a:integer;
begin
if TreeView1.Selected.HasChildren=false then
begin
a:= StrToInt(TreeView1.Selected.Text) +
StrToInt(TreeView1.Selected.Parent.Text)+
StrToInt(TreeView1.Selected.Parent.Parent.Text);
ShowMessage(IntToStr(a)); end;
end;
var a:integer;
begin
if TreeView1.Selected.HasChildren=false then
begin
a:= StrToInt(TreeView1.Selected.Text) +
StrToInt(TreeView1.Selected.Parent.Text)+
StrToInt(TreeView1.Selected.Parent.Parent.Text);
ShowMessage(IntToStr(a)); end;
end;
if TreeView1.Items.Count<1 then Exit;
if TreeView1.Selected=nil then Exit;procedure TForm1.TreeView1Click(Sender: TObject);
var a:integer;
begin
if TreeView1.Items.Count<1 then Exit;
if TreeView1.Selected=nil then Exit;
if TreeView1.Selected.HasChildren=false then
begin
a:= StrToIntDef(TreeView1.Selected.Text,0) +
StrToIntDef(TreeView1.Selected.Parent.Text,0)+
StrToIntDef(TreeView1.Selected.Parent.Parent.Text,0);
ShowMessage(IntToStr(a)); end;end;
procedure TForm1.TreeView1Click(Sender: TObject);
var
pt:TPoint;
node:TTreeNode;
begin
pt:=TreeView1.ScreenToClient(mouse.CursorPos);
node:=TreeView1.GetNodeAt(pt.X,pt.Y);
if (node<>nil)and(node.Level=2) then //如果点击了结点并且是第三层的话
begin
//取得年月日的相加
edit1.Text:=node.Parent.Parent.Text+node.Parent.Text+node.Text;
//我想楼主不一定是想要年月日的整数相加吧,我权且改成字符串相加了
end;
end;