操作treeview 控件的两个函数(转贴+原创)
2004-09-26 18:06
495 查看
/**********************************************************/
//function : 遍历所有的项,查找目标项
//uf_find_item
//para :
// 1. handle : 项目句柄 long
// 2. a_data : 目标项数据 string
// 3. ai_type: 查找类型 int
//return : (none)
//
//date
//comment :
// ai_type = 1 是准确查找
// ai_type = 2 是模糊查找
/*********************************************************/
Long l_ret,l_find
TreeViewItem ltvi_find
//没有找到
ib_find = FALSE
IF IsNull(a_data) THEN
// MessageBox(ga_app.dwmessagetitle,"请输入查询条件 !",StopSign!)
RETURN -1
END IF
//Do While Yield()
//Loop
DO WHILE handle <> -1 AND NOT ib_find
THIS.GetItem(handle,ltvi_find)
IF ai_type = 1 THEN //是准确查找
IF string(ltvi_find.data) = a_data THEN
SelectItem(handle)
ib_find = TRUE
RETURN handle
END IF
ELSE //是模糊查找
IF Pos(ltvi_find.label,String(a_data)) > 0 THEN
SelectItem(handle)
IF MessageBox('','是否查找下一项 "' +&
String(a_data) + ' "' ,Question!,YesNo!,2) = 2 THEN
ib_find = TRUE
RETURN handle
END IF
END IF
END IF
//---判断该项是否有子项,有则,递归调用,处理返回值取得目标项句柄---//
l_ret = THIS.FindItem(ChildTreeItem!,handle)
IF l_ret >0 THEN
l_find = THIS.uf_find_item(l_ret,a_data,ai_type)
END IF
handle = THIS.FindItem(NextTreeItem!,handle)
LOOP
IF ib_find THEN
RETURN l_find
ELSE
RETURN -1
END IF
//=====================================
////ue_deleteitems
//删除所有树形节点的函数
//long al_handle
//wuhai
//20040725
//======================================
long ll_chi_handle,ll_parent_handle
long ll_c
ll_chi_handle = this.FindItem (ChildTreeItem! , al_handle )
if ll_chi_handle > 0 then
this.event ue_deleteitems(ll_chi_handle ) //递归函数
end if
ll_parent_handle = this.FindItem (ParentTreeItem! , al_handle)
if al_handle =-1 and ll_parent_handle = -1 and ll_chi_handle= -1 then return
this.deleteitem(al_handle)
il_c ++
this.event ue_deleteitems(ll_parent_handle ) //递归函数
//function : 遍历所有的项,查找目标项
//uf_find_item
//para :
// 1. handle : 项目句柄 long
// 2. a_data : 目标项数据 string
// 3. ai_type: 查找类型 int
//return : (none)
//
//date
//comment :
// ai_type = 1 是准确查找
// ai_type = 2 是模糊查找
/*********************************************************/
Long l_ret,l_find
TreeViewItem ltvi_find
//没有找到
ib_find = FALSE
IF IsNull(a_data) THEN
// MessageBox(ga_app.dwmessagetitle,"请输入查询条件 !",StopSign!)
RETURN -1
END IF
//Do While Yield()
//Loop
DO WHILE handle <> -1 AND NOT ib_find
THIS.GetItem(handle,ltvi_find)
IF ai_type = 1 THEN //是准确查找
IF string(ltvi_find.data) = a_data THEN
SelectItem(handle)
ib_find = TRUE
RETURN handle
END IF
ELSE //是模糊查找
IF Pos(ltvi_find.label,String(a_data)) > 0 THEN
SelectItem(handle)
IF MessageBox('','是否查找下一项 "' +&
String(a_data) + ' "' ,Question!,YesNo!,2) = 2 THEN
ib_find = TRUE
RETURN handle
END IF
END IF
END IF
//---判断该项是否有子项,有则,递归调用,处理返回值取得目标项句柄---//
l_ret = THIS.FindItem(ChildTreeItem!,handle)
IF l_ret >0 THEN
l_find = THIS.uf_find_item(l_ret,a_data,ai_type)
END IF
handle = THIS.FindItem(NextTreeItem!,handle)
LOOP
IF ib_find THEN
RETURN l_find
ELSE
RETURN -1
END IF
//=====================================
////ue_deleteitems
//删除所有树形节点的函数
//long al_handle
//wuhai
//20040725
//======================================
long ll_chi_handle,ll_parent_handle
long ll_c
ll_chi_handle = this.FindItem (ChildTreeItem! , al_handle )
if ll_chi_handle > 0 then
this.event ue_deleteitems(ll_chi_handle ) //递归函数
end if
ll_parent_handle = this.FindItem (ParentTreeItem! , al_handle)
if al_handle =-1 and ll_parent_handle = -1 and ll_chi_handle= -1 then return
this.deleteitem(al_handle)
il_c ++
this.event ue_deleteitems(ll_parent_handle ) //递归函数
相关文章推荐
- 操作treeview控件的两个函数(转贴+原创)
- 树控件TreeView的一些基本操作
- 设置服务器控件的客户端属性的两个函数
- 青蛙的约会||资源控件||内存分配与函数操作||异常处理||Winsock编程
- 自己写的一个函数,用来自动连接对话框上的两个控件(画线)
- 对Url的QueryString操作的两个函数
- 两个字符串操作函数、bash shell
- MFC 树控件我喜欢的两个函数
- jQuery:实现两个<select>控件的互移操作
- 两个select多选控件中项的移动的相关操作
- 控件之间拖放操作-----实现Treeview到Treeview
- unittest测试用例带有setUp、两个测试函数操作实例
- Delphi中的操作二进制文件的两个重要函数
- Delphi中的操作二进制文件的两个重要函数
- 用jQuery实现asp.net 2.0 treeview控件完全无刷新操作实例(AJAX的增、删、改、选择以及展开收缩节点)
- opengl红宝书关于name stack操作两个函数glLoadName,glPushName的用法区别
- ASP.net 中关于控件Treeview的操作------ 节点查找、删除和添加
- 控件之间拖放操作(二)-----实现Treeview节点到DataGridView
- 两个checkbox的控件控制操作只能选其一
- jQuery实现两个select控件的互移操作