正在用PB8.04的朋友们来看看

myclife 2005-12-28 05:13:53
是关于菜单的问题,问题如下:

系统有主菜单一个,继承于主菜单的子菜单若干。当删除或重命名主菜单中的菜单项时子菜单就会出现语法错误,必须打开Source手工删除一些多余的代码。

不知道其他版本有没有问题,目前只用PB6.51和PB8.04。

个人认为这是PB的一个设计缺陷或者是错误,子菜单继承主菜单复制了主菜单的项目到子菜单,导致主菜单修改的时候出现错误,如果仅仅是引用而不是复制就不会有类似的错误。
...全文
187 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdsnhan 2006-01-06
  • 打赏
  • 举报
回复
to bbdx2523(08车001号)
如果把父对象中的这个事件给删除了(是删除了,而不是空事件),而父对象中的触发这个事件的代码也还是存在的,那肯定会报错啊。难道不应该报错吗?因为事件真的不存在。呵呵。

对于大钟的问题,俺也遇到过一次,以后就不用菜单继承了(怕怕)。
后期想想,老感觉这种错误与menu.item[].item[]组织顺序有关。
bbdx2523 2006-01-05
  • 打赏
  • 举报
回复
这个问题在对象继承中也存在,就如在父对象中建了一个用户事件,里面有代码,再在后继对象中的这个事件中再加些代码,而在父对象中这个事件是一定会被触发的.如果把父对象中的这个事件给删除了,这时子对象中的这个事件还是存在的,而父对象中的触发这个事件的代码也还是存在的,这时运行就会出错了.菜单也是这个道理.
rishengw 2006-01-05
  • 打赏
  • 举报
回复
需要用Edit Source来编辑源代码,修改后再regenerate
hygougou 2006-01-04
  • 打赏
  • 举报
回复
8这个问题困扰我很久啊,摒弃它这是一个原因:)
jojophak 2006-01-04
  • 打赏
  • 举报
回复
学习
pmz 2005-12-29
  • 打赏
  • 举报
回复
修改了父对象,子对象需要重新生成,在子对象上点右键,regenerate就可以了
并非缺陷,因为PB并不会在你修改了某一对象后把程序全编译
j9dai 2005-12-29
  • 打赏
  • 举报
回复
遇到过
lzheng2001 2005-12-29
  • 打赏
  • 举报
回复
偶尔发生过,通常修改父菜单之前都会先saveas备份一下,然后修改,如果有问题则还原, 重复这个操作. 说明一下:多数情况下都能够正常保存的,有时会发生错误而已
wu_07 2005-12-29
  • 打赏
  • 举报
回复
遇到过,确实有这种现象,重新生成子菜单也不行

只是当时子菜单不复杂,所以重新从主菜单继承出来了一个

大概,pb的设计者认为我们在编程时候,已经作了充分合理的详细设计,主菜单作为父亲,结构应该是够稳定,不会去再去动它.
WorldMobile 2005-12-29
  • 打赏
  • 举报
回复
遇到过,需要用Edit Source来编辑源代码,修改后再regenerate

好像没有什么好的方法,不过我修改祖先菜单的情况很少,呵呵
li_d_s 2005-12-29
  • 打赏
  • 举报
回复
感觉pb的继承最好是把父对象能想到的都弄全了,否则继承后改父对象都有些小毛病的
myclife 2005-12-29
  • 打赏
  • 举报
回复
to: pmz()

如果直接重新regenerate能成功的话就不是什么问题了,关键是不能成功。

我现在的办法是用Edit Source的功能打开代码删去主菜单那部分代码,在重新regenerate。
xyqiqi 2005-12-29
  • 打赏
  • 举报
回复
我现在PB9,发现比PB8的毛病更多。
在主菜单上用opensheet打开窗口,定义了一个全局变量,并赋了值,打开窗口后,一点击窗口就不见了。其实窗口没有关闭,我在关闭的时候写了代码调试,当我退出系统的时候,messgae就出来了。
lzheng2001 2005-12-29
  • 打赏
  • 举报
回复
有时候regenerate会失败的!

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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