先设置TreeView1的Images属性为ImageList1, 然后在TreeView1的OnChange事件中: procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); var i: Integer; begin for i := 0 to TreeView1.Items.Count - 1 do TreeView1.Items[i].ImageIndex := 1; Node.ImageIndex := 0; end;
//在TreeView的GetImageIndex事件中编写代码: procedure TForm1.TreeView1GetImageIndex(Sender: TObject; Node: TTreeNode); begin if node.Selected then node.ImageIndex:=0 else node.ImageIndex:=1; end;
然后在TreeView1的OnChange事件中:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var i: Integer;
begin
for i := 0 to TreeView1.Items.Count - 1 do
TreeView1.Items[i].ImageIndex := 1;
Node.ImageIndex := 0;
end;
然后在运行时动态设定节点的图标
即选中的节点的imageindex属性为0,其它设为1
號則指定了選中時的圖標
ImageIndex為在未選中時顯示的圖標,如StateIndex為-1則選中時圖標也不會變.
procedure TForm1.TreeView1GetImageIndex(Sender: TObject; Node: TTreeNode);
begin
if node.Selected then
node.ImageIndex:=0
else
node.ImageIndex:=1;
end;
var Node: TTreeNode;
Node := TreeView1.Items.AddChild(..,..);
Node.ImageIndex := 0;
Node.SelectedIndex := 1;
不然就用genphone_ru(哎,什么都要学,真累) 的方法,更简单,直接设置ImageIndex和SelectedIndex就行了。