关于TreeView 的图标问题(100分)

  • 主题发起人 主题发起人 finity
  • 开始时间 开始时间
F

finity

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么我这样换不了图标?

IconList 是 TComBoBoxEx
TV_Dept 是 TTreeView
两者使用的是同一个ImagesList

if ed_Dept.Text='' then Exit;

IconIndex:=IconList.Items.IndexOf(IconList.Text);{图标序号}

TV_Dept.Items.BeginUpdate;
DeptNode:=TTreeNode.Create(TV_Dept.Items);
DeptNode.ImageIndex:=IconIndex;
DeptNode.SelectedIndex:=IconIndex;
TV_Dept.Items.Add(DeptNode,ed_Dept.Text);
Inc(DeptCount);
GroupBox1.Caption:=Format('部门设置[共有%s个部门]',[IntToStr(DeptCount)]);
TV_Dept.Items.EndUpdate;
ed_Dept.Text:='';

为什么TreeView 在建立Node的时候图标始终是ImagesList的第一个图标?

 
DeptNode:=TTreeNode.Create(TV_Dept.Items);
//这两句转移到add() 之后
// DeptNode.ImageIndex:=IconIndex;
// DeptNode.SelectedIndex:=IconIndex;
TV_Dept.Items.Add(DeptNode,ed_Dept.Text);
DeptNode.ImageIndex:=IconIndex;
DeptNode.SelectedIndex:=IconIndex;
 
iKing:
试过了,一样的。。。
 
[:(!]在线等,解决了立马加分!
[:D]诸位帮帮忙啊。。。。
 
function TBaseInforFam.myaddnode(ParentID,CurID,CurName,CurType:string):TTreeNode;
var tempPNodeDec:PNodeDec;
mynode:ttreenode;
SuperAreaID:string ;
i:integer;
begin
result:=nil;

for i:=0 to TreeView1.Items.Count-1 do
begin
if TreeView1.Items.Text='基本信息' then continue;
if PNodeDec(TreeView1.Items.Data)^.NodeDecID=ParentID then
begin
new(tempPNodeDec);
tempPNodeDec.NodeDecID:=CurID;
tempPNodeDec.NodeDecName:=CurName;
tempPNodeDec.SupNodeDecID:=ParentID;
tempPNodeDec.NodeType:=CurType;
mynode:=TreeView1.Items.AddChildObject(TreeView1.Items,tempPNodeDec.NodeDecName
,tempPNodeDec);

if CurType='1' then
begin
mynode.ImageIndex:=0;
mynode.SelectedIndex:=0;
end;
if CurType='2' then
begin
mynode.ImageIndex:=1;
mynode.SelectedIndex:=1;
end;
if CurType='3' then
begin
mynode.ImageIndex:=2;
mynode.SelectedIndex:=2;
end;
end;
end;
result:=mynode;
end;
//这是我的一个列子程序
 
可以在建完树之后,添加如下代码
curnode:=bsSkinTreeView1.Items.GetFirstNode;
while curnode <> nil do
begin
curnode.ImageIndex :=0;
curnode.SelectedIndex :=1;
curnode:=curnode.GetNext ;
end;
 
楼上的没有明白我的意思,对不起可能是我没解释清楚
是这样,我建了一个图标下拉表,我想在建树的时候根据我选择的图标来建立TreeNode,
就是说我先选择一个图标,然后树里面下一个添加的项就使用这个图标。。。
 
搞出来了,用AddNode函数,不用Add
 
IconIndex:=IconList.Items.IndexOf(IconList.Text);{图标序号}
--->
IconIndex:=IconList.Items.IndexOf(ed_Dept.Text);{图标序号}
 
恭喜搞出来了,快给分啊,还楞着做什么
 
多人接受答案了。
 
后退
顶部