uses CommCtrl;function TreeNodeGetNext( // 获得下一个节点
mHandle: THandle;
mTreeItem: HTreeItem
): HTreeItem;
var
vParentID: HTreeItem;
begin
Result := nil;
if (mHandle <> 0) and (mTreeItem <> nil) then
begin
Result := TreeView_GetChild(mHandle, mTreeItem);
if Result = nil then
Result := TreeView_GetNextSibling(mHandle, mTreeItem);
vParentID := mTreeItem;
while (Result = nil) and (vParentID <> nil) do
begin
vParentID := TreeView_GetParent(mHandle, vParentID);
Result := TreeView_GetNextSibling(mHandle, vParentID);
end;
end;
end; { TreeNodeGetNext }哪位可以帮我讲一下这段代码,谢谢?
mHandle: THandle;
mTreeItem: HTreeItem
): HTreeItem;
var
vParentID: HTreeItem;
begin
Result := nil;
if (mHandle <> 0) and (mTreeItem <> nil) then
begin
Result := TreeView_GetChild(mHandle, mTreeItem);
if Result = nil then
Result := TreeView_GetNextSibling(mHandle, mTreeItem);
vParentID := mTreeItem;
while (Result = nil) and (vParentID <> nil) do
begin
vParentID := TreeView_GetParent(mHandle, vParentID);
Result := TreeView_GetNextSibling(mHandle, vParentID);
end;
end;
end; { TreeNodeGetNext }哪位可以帮我讲一下这段代码,谢谢?
解决方案 »
- 如果使用api 隐藏任务栏上的标题栏?
- 请问给定一个fillname有没有直接函数可以取其盘符?好像getdrive和getdrivename是这种功能,可是它们在哪个单元呢?
- 一个关于汉字与拼音简写的问题
- 100分不够多,再散100
- 求教桌面小精灵的写法!功能如下:
- 控件的图标!
- 如何将一个窗体(form)设置为“总在最前”?
- delphi中怎么隐藏一个进程,使其不会被ctrl+alt+del调出任务列表然后‘结束任务’?
- 请教各位大侠:在哪能找到好的delphi报表制作控件?请指点几个。。
- 是否有判断目录是否存在的函数?
- 快捷键失效了
- access+delphi本地能运行的程序为什么到其它及其上没法运行?
至于代码功能,函数名字已经表示的很清楚了.
if (mHandle <> 0) and (mTreeItem <> nil) then //是否有效
begin
Result := TreeView_GetChild(mHandle, mTreeItem); //获得mTreeItem的子节点
if Result = nil then //没有子节点
Result:=TreeView_GetNextSibling(mHandle,mTreeItem); //获得mTreeItem的下一个兄弟节点
vParentID := mTreeItem;
while (Result = nil) and (vParentID <> nil)do //已经是同一级最后面的节点了
begin
vParentID := TreeView_GetParent(mHandle, vParentID);//开始找父节点
Result := TreeView_GetNextSibling(mHandle, vParentID); //父节点的下一个兄弟节点
end;
end;
end; { TreeNodeGetNext } 这个就是TreeView.Next啊