导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

PowerBuilder中我知道一个对象的名称,怎么根据这个对象的名称取得该对象,请各位大虾帮帮忙!

凌云 2006-01-23 08:02:54
我现在写一个程序是:

1、我知道一个菜单的名称是m_main

2、现在我想处理菜单m_main的各个子菜单(m_main.Item)

3、现在的问题是,我只是知道名称m_main,但是怎么才能像m_main.Item这样的引用其属性


望各位大虾指教,谢谢!
...全文
166 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
凌云 2006-05-22
首先我说一下我的想法,本意是想做一个菜单功能的鉴权操作,就是想动态的设定某个操作员可以操作哪些功能菜单。

rightyeah(众妙之门) 的说法是对的,只有菜单被打开的某个窗口引用了,才可以用菜单属性数组Item[]

但是现在我们的设计是,提供一个运行的平台,在这个运行的平台上面挂接一些应用模块,每个模块都是有各自的菜单的,在没有这些应用模块的主界面前,这些模块的主菜单是没有窗口打开的,所以不能用.Item[]的方式引用各子菜单项,所以我做了一个对象来分析菜单的Create语法(用PBL运行用LibraryExport(库名,菜单名,ExportMenu!)是可以导出语法的,但是编译以后就不行了,用FindClassDefinition()返回的是相对路径且对象存放的文件是pbd,不是PBL运行返回的绝对路径和pbl,且LibraryExport函数只对PBL有效,对PBD导不出来,说明一下,用的PB是6.5的,不知道PB8.0是不是可以),分离出各个菜单项,并重新生成一个菜单对象。这种方式用PBL可以,用PBD运行就报空对象引用。

大家看看,有没有什么办法能在菜单被包含的窗口未打开时,就可以引用,谢谢!
回复
圣殿骑士18 2006-05-20
m_main不是一个确定在值,是在数据库中配置的
---
如果说m_main是不确定的值,那你pb中这个对象不也不确定的?这怎么可能?
你要成功调用这个不确定名字的菜单,就需要在pbl中要有这个不确定的对象才行,
但是pbl中的对象名都是确定的,因此这个设计思路有问题。
---
如果这个值在数据库配置中是确定的有限个数的菜单,那在程序中用if then 穷举好了
回复
凌云 2006-05-20
这个很好理解的,只知道菜单在名字是m_main,但是我并不清楚m_main这个对象是否在我当前的运行库列表中,所以我需要用FindClassDefinition()函数来判断m_main是否定义了,如果定义了证明这个对象存在,但是我只知道名称是m_mian,所以我不能用m_mian.Item[]的方式来引用(说明一下,m_main不是一个确定在值,是在数据库中配置的,所以我没有办法用if .... then 的方式来引用)
回复
Lionwoo 2006-01-24
真是奇怪的思维,你不通过m_menu.item来引用难道还能通过其他方法来引用?

楼上的正解。
回复
rightyeah 2006-01-24
首先需要保证m_menu已经打开
for i=1 to upperbound(m_menu.item)
m_menu.item[i].tag=''
next
//这里不考虑执行效率问题
回复
allen_lc 2006-01-24
能说清楚点吗。。。。
回复
YewPu 2006-01-23
沒看懂你的意思.
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

804

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告