[求教]如何读取菜单项

smallarms 2007-02-05 11:01:44
设有个菜单对象m_main,想在程序的脚本中读取m_main的所有菜单项(包括级联的),赋给一个字符串型的数组。

给个详细的例子,请指教!
...全文
139 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nongly 2007-02-06
  • 打赏
  • 举报
回复
提供个参考:递归读取,结果放到一个字符串



$PBExportHeader$f_menu.srf
global type f_menu from function_object
end type

forward prototypes
global subroutine f_menu (menu p_menu, ref string p_ls)
end prototypes

global subroutine f_menu (menu p_menu, ref string p_ls);
int i

FOR i=1 TO upperbound(p_menu.item)
p_ls += p_menu.item[i].text
f_menu(p_menu.item[i],p_ls)
NEXT
p_ls += '~n'

end subroutine
rightyeah 2007-02-06
  • 打赏
  • 举报
回复
遍历菜单就是访问menu.item[]数组(配合upperbound函数取数组上界),算法就用遍历树的算法,就可以了,没什么大不了的
huijiexiao 2007-02-06
  • 打赏
  • 举报
回复
我的程序中最多只用到了四级菜单,所以我用了四重循环.如果菜单级别不定的话,可考虑用递归做.
menu lm_a,lm_b,lm_c,lm_d
for i=1 to upperbound(m_mainplat.Item[])
//lm_a.text,可取出菜单项
lm_a=m_mainplat.Item[i]
for j=1 to upperbound(lm_a.Item[])
lm_b=lm_a.Item[j]
.......
next
next

//使用PB+SQL Server写程序已经有七年多光景,注册CSDN帐号也已有几年了,一直在潜水,
//现在冒出来,愿与大家共同进步。水平有限,多多包涵。
smallarms 2007-02-06
  • 打赏
  • 举报
回复
多谢各位指点!

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧