想使TTreeView某个节点图标在展开时变为另一个,合上后又变回原来的,
不知如何作,用哪个属性,请各位大侠指教,谢了!
不知如何作,用哪个属性,请各位大侠指教,谢了!
解决方案 »
- 求高人指点:为什么我用IDHTTP成功登陆网站后,在访问其他网页的时候却提示要从新登陆?
- 怎么用delphi读取autoCAD的dwg文件?
- 求:数据库SQL SERVER保存读取图片例程。(jpg和bmp格式)
- 在Dll中使用多线程
- 我不是打印数据库中的内容,只打印窗体内容怎么办?555555
- dbgrid如何增加行
- 表单上有一个image控件,我需要对bmp的canvas执行多次textout操作,即加上一些文字,每次操作前我想先使canvas上原来存在的内容去掉,我
- 如果花了N长时间下载一个10M软件运行时却发现少了一个文件……谁能帮帮我???
- 怎么知道某个文件是否正在被某一程序访问?
- 请问对com串口操作的控件是什么啊??
- webbrowser 内存流加载问题
- 谁能给一个LRC歌词的算法和显示的DEMO
begin
Node.ImageIndex := 1;
Node.SelectedIndex := 1; //
TTreeView(Sender).Invalidate; // 刷新
end;procedure TForm1.TreeView1Collapsed(Sender: TObject; Node: TTreeNode);
begin
Node.ImageIndex := 0;
Node.SelectedIndex := 0; //
TTreeView(Sender).Invalidate; // 刷新
end;
如何得到当前被展开或合上的节点的index值呢,通常都是点击图标左边的"+"
号或"-"号来展开或合上节点的,我想在点击时只改变当前被中"+"号或"-"号的
对应节点的图标.如何得到此节点的index值啊?
procedure TForm3.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
var
i :Integer;
begin
i:=TreeView1.Selected.Index;
if (i>=0) and (i<TreeView1.Items.Count) then
begin
TreeView1.Items[i].ImageIndex:=2;
TreeView1.Items[i].SelectedIndex:=2;
TTreeView(Sender).Invalidate;//刷新
end;
end;
TreeView1.Selected.Index的返回值为"-1",那么这里应该选择哪个属性
来得到被展开节点的值呢?请再指教一二
TreeView1.Selected := Node;
i:=TreeView1.Selected.Index;
即然Node参数就是点+的节点,那么我下面用
TreeView1.Items[i].ImageIndex:=2;
来改变Node节点的图标就不对了,因为Node=1时,Item可能等于
3,4或更大的值
AbsoluteIndex才是绝对序号//try
i:=TreeView1.Selected.AbsoluteIndex;
i:=TreeView1.Selected.AbsoluteIndex;这句话直接报错.
是不是要用stateimages属性呢?
i := TreeView1.Selected.AbsoluteIndex;//我第一个给你的回复有什么问题??????????
//你为何非要用TreeView1.Items[i]访问???????procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
begin
Node.ImageIndex := 1;
Node.SelectedIndex := 1; //
TTreeView(Sender).Invalidate; // 刷新
end;procedure TForm1.TreeView1Collapsed(Sender: TObject; Node: TTreeNode);
begin
Node.ImageIndex := 0;
Node.SelectedIndex := 0; //
TTreeView(Sender).Invalidate; // 刷新
end;