关于TreeView(50分)

  • 主题发起人 主题发起人 zgp2000
  • 开始时间 开始时间
Z

zgp2000

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp;通过SAVETOFILE将目录树保存为文本文件,但用LOADFROMFILE调用该文本文件时,不知如何使<br><br>不同级目录以不同的ICO文件来标识,以及当节点被选中时,则以另一ICO文件标识。
 
<br>loadfromfile之后遍历一遍treeview.items。 根据treenode.level决定每个treenode.imageindex和selectedindex。
 
补充一下: 要用timagelist保存ico文件, treeview.image要指向这个imagelist:-)<br>
 
这种控件有没没支持数据库的,数据敏感控件。<br>我很需要。
 
个人觉得、事实上也是,Borland的做法的完全没有问题的,<br>它的“保存到文件”“读入由文件”仅处理的只是文本这种方法是正确的。<br>图标应该是不保存的。不是吗?<br>图标应该是由节点来确定,或者是由它的名称?或者是所处节点的位置或者级数来决定。<br>所以,文件的图标是,也绝对应该由在OnGetImageIndex、OnGetSelectIndex这两个事件中确定的。<br>将您选择图标的过程放在这两个事件中吧?<br>这样您的烦恼不再!
 
多人接受答案了。
 
Another_eYes的方法不见得就比我的好,如果ImagesList中的内容是不确定的,<br>Another_eYes的方法会乱七八糟的。而我的方法就100%的准确。<br>5分...@#$@#$
 
3h,5分是友情分嘛,并不代表你的方法就不对。:-)<br><br>下面是我用Another_eYes 的方法通过的程序,好像没出现<br><br>你所说的问题。<br><br>procedure Tmainform.FileTreeImageIndex;<br>var i:integer;<br>&nbsp; &nbsp; anode:TTreenode;<br>begin<br>&nbsp; &nbsp; for i:=0 to treeview1.Items.Count-1 do<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp;anode:=treeview1.Items;<br>&nbsp; &nbsp; &nbsp; &nbsp;if anode.Level=0 then<br>&nbsp; &nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; anode.ImageIndex:=2;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; anode.SelectedIndex:=3;<br>&nbsp; &nbsp; &nbsp; &nbsp;end;<br><br>&nbsp; &nbsp; &nbsp; &nbsp;if anode.Level=1 then<br>&nbsp; &nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; anode.ImageIndex:=0;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; anode.SelectedIndex:=1;<br>&nbsp; &nbsp; &nbsp; &nbsp;end;<br>&nbsp; end;<br>end;<br>
 
没有出现问题的原因在于您使用的ImagesList的内容不变。<br>假如您使用的列表内容不确定,例如系统的文件图标列表,动态变化的,<br>嘿嘿,看怎么样。
 
后退
顶部