先把TreeView与ImageList联系上,然后加入两个图标procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode); begin Node.ImageIndex:=0; Node.SelectedIndex:=0; Node.StateIndex:=0; end;procedure TForm1.TreeView1Collapsed(Sender: TObject; Node: TTreeNode); begin Node.ImageIndex:=1; Node.SelectedIndex:=1; Node.StateIndex:=1; end;
procedure TForm1.TreeView1GetImageIndex(Sender: TObject; Node: TTreeNode); begin if Node.HasChildren then if Node.Expanded then node.ImageIndex:=1 else Node.ImageIndex:=0 else node.ImageIndex:=2; end;不用注释吧!
begin
Node.ImageIndex:=0;
Node.SelectedIndex:=0;
Node.StateIndex:=0;
end;procedure TForm1.TreeView1Collapsed(Sender: TObject; Node: TTreeNode);
begin
Node.ImageIndex:=1;
Node.SelectedIndex:=1;
Node.StateIndex:=1;
end;
begin
if Node.HasChildren then
if Node.Expanded then
node.ImageIndex:=1
else
Node.ImageIndex:=0
else
node.ImageIndex:=2;
end;不用注释吧!
在里面添加图标TreeView.ImageList:=ImageList;
打开
TreeView.Item[i].ImageIndex:=0;
关闭
TreeView.Item[i].ImageIndex:=1;
SelectedIndex:当节点被选中时在TimageList 中选什么样的图象
OverlayIndex:选那副图象作为掩图(一幅图象透明地显示在另一幅图象的前面),比如一个节点不可用时加一副X图象在其前面。
ImageIndex:在常态时选用的图的序号
StateIndex: 在StateImages这个ImageList中对应的序号,-1时不显示图象
比较典型的,象在文件管理器中的所显示的一样,Treeview控件在节点之前也可以显示图象。在Form中放置一ImageList控件,加入几个图片,分别被Index为0 1
…在Treeview的Image属性项填入你所加入的ImageList的控件名称。TreeNode的ImageIndex表示节点未被选中时(Selected=nil)的图片序号,SelectedIndex表示节点被选中时图片序号。
这个可以解释清楚些吗?
if node.Selected then
node.SelectedIndex:=1
else
node.SelectedIndex:=0;第一次会有效果
但是以后都是一种图象
这是为什么
你在窗体上加一个imagelist然后向里面加图像,图像的序号是从0开始的
如果不向让他有图片 负值-1