请教各位,如果判断窗口是哪种方式打开建立的.

lingdove 2012-03-22 12:37:54
一个窗口:w_a
两种方式打开:
第一种:
OpenWithParm(w_a, apo_parm, w_parent) //这种方式打开后可以用isvalid(w_a)来判断w_a是否存在.

第二种:
Window lw_win
OpenWithParm(lw_win, apo_parm, 'w_a', w_parent)
这种方式打开的窗口不能用isvalid(w_a)来判断是否存在.但是这种比较灵活.可以通过后台设置来打开不同的窗口.

请问在w_a窗口里面,如果知道窗口对象是用上面哪种方式打开的??

...全文
457 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldMobile 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

谢谢大家,我是要在窗口里面的函数来判断它本身是如何打开的.
我现在的处理办法是,如果动态打开的话,打开之后我给窗口的ICON(其它属性)也行,做一个标志,之后判断一下这个属性的值这样来判断.
[/Quote]


建议你在窗口的祖先里加个变量,或者用窗口的tag属性也可以

用isvalid应该也可以判断出

if isvalid(w_1) then
//通过第一种方式打开
else
//通过第二种方式打开
end if
billxia 2012-07-16
  • 打赏
  • 举报
回复
打开的时候 带个参数进去。或者造个全局变量。。。呵呵

如果要传递多个参数 到新窗口中。。也可以使用传递结构的方法。。
lingdove 2012-03-24
  • 打赏
  • 举报
回复
谢谢大家,我是要在窗口里面的函数来判断它本身是如何打开的.
我现在的处理办法是,如果动态打开的话,打开之后我给窗口的ICON(其它属性)也行,做一个标志,之后判断一下这个属性的值这样来判断.
ribut9225 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jshcheer 的回复:]

声明两个句柄数据存储,用handle(this)来分别赋值存取打开的窗体句柄。要想知道是那种方式,用当前的窗体句柄直接在数据存储查找。
[/Quote]

支持一个,有了句柄,啥事都好做了
jshcheer 2012-03-23
  • 打赏
  • 举报
回复
声明两个句柄数据存储,用handle(this)来分别赋值存取打开的窗体句柄。要想知道是那种方式,用当前的窗体句柄直接在数据存储查找。
yyoinge 2012-03-23
  • 打赏
  • 举报
回复
为什么要在w_a中判断呢

在w_a中建立一个实例变量:long il_cpu
在w_a的open中写:
il_cpu = cpu()
if isvalid(w_a) then
if w_a.il_cpu = il_cpu then
messagebox('', '用第一种:OpenWithParm(w_a, apo_parm, w_parent) 打开的窗口')
else
messagebox('', '用第二种:OpenWithParm(lw_win, apo_parm, 'w_a', w_parent)
打开的窗口')
end if
else
messagebox('', '用第二种:OpenWithParm(lw_win, apo_parm, 'w_a', w_parent)
打开的窗口')
end if
feifeihcb 2012-03-22
  • 打赏
  • 举报
回复
第二种:
Window lw_win
OpenWithParm(lw_win, apo_parm, 'w_a', w_parent)
这种方式打开的窗口不能用isvalid(w_a)来判断是否存在.但是这种比较灵活.可以通过后台设置来打开不同的窗口.
用isvalid(lw_win)试试
xuam 2012-03-22
  • 打赏
  • 举报
回复
为什么要知道打开方式?

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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