我做了一个treeview操作树,现在我想在我的程序主菜单中关联这个树结构的操作(比如在树结构中有一个数据远传管理项,然后我在主菜单中有一个数据管理项,怎样实现点击菜单中的数据管理项,等同于树结构中的数据管理项),不能用treeview1.item[1].selected:=true;因为如果这样的话,我要是在树结构中加了一项,这个数字就变了,有没有其他好办法呀?
解决方案 »
- 新手学习,100分求下面多线程效果的代码。
- 关于SQL语句中加入判断是/否字段请教
- 请高手帮我看看这段代码怎么写,谢谢!
- 为何数据库查询时候线程会停止?高手请
- 海南的Delphi朋友有吗?我在海口,有空交流交流
- 读DBF文件头问题?请各位支持!
- 我热爱Pascal,但对于我至爱的语言的前途感到迷茫,请大家来看一看,谈一谈!
- 如何在用ado对不同服务器的表进行关联查询
- 用了DELPHI一段日子后,发觉他在数据库功能方面挺强的
- 救命的问题,dll中有一个函数abc@8,delphi没有办法调用,因为@的缘故,怎办?
- csdn 没有人会,到大富翁去了>>>>>>>>>>>>>>>
- DBGRID中绘制图片
我这个函数可以实现对某个分支的遍历,如果你想遍历整个TreeView,用Count和AbsoluteIndex做个循环
就可以了,就不用什么遍历了,看看对你是否有用。
procedure TForm1.Ransack(iParentIndex : Integer);
//iParentIndex是你所要遍历的那个分支的
//根节点的绝对序号,就是该节点的AbsoluteIndex属性
var
ParentNode, ChildNode, TempNode : TTreeNode;
//父节点 子节点 临时中转节点
begin
ParentNode := TreeView1.Items.Item[iParentIndex];
ChildNode := ParentNode.getFirstChild;
while ChildNode <> nil do //找到第一个子节点了
begin
//-----------------------------
Memo1.Lines.Add(ChildNode.Text);
//这里是找到子节点后你的处理代码
//-----------------------------
TempNode := ChildNode.getFirstChild;
if TempNode <> nil then //如果还有子节点,则递归
begin
Ransack(ChildNode.AbsoluteIndex);
end;
TempNode := ChildNode;
ChildNode := ParentNode.GetNextChild(TempNode);
end;
end;
赋值都错了,怎么赋值呀?
能不能说得清楚一些呀
例:
testNode.Data := Pointer(menucaption);
这样是不是可以,还有怎样取出来?
testNode.Data^这样好像取不出来呀,