如何引用窗口?

zgtsy 2009-05-09 10:16:53
有三个窗口a、b、c 。
a和b打开c 。
如何知道是那个窗口打开的c?
在窗口c的cb_1的单击事件里如何改变打开它的窗口里sle_1.text。

我是这样做的可是不对:
我先定义了Global Variables变量window aa
在a和b的cb_1的单击事件:
aa=parent
open(c)

在c的cb_1里写:
aa.sle_1.text="help"

报错Error C0019:Incompatible property sle_1 for type window

这个功能应如何实现?
...全文
77 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
newease 2009-05-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 softvery 的回复:]
可以使用传递参数的形式来确定是哪个窗口打开的
如果你要打开C,可以这样定义

a 窗口代码:
openwithparm(aa,'a')
b窗口代码:
openwithparm(aa,'b')

然后在C里面定义一个实例变量
public:
string is_parent

在open 里写:
is_parent=message.stringparm

这样通过 aa.is_parent就可以判断是谁打开的了
当然这样就可以进行相关的操作了。
例如在C里面进行:
choose case is_parent
case 'a…
[/Quote]

一楼方法可行
softvery 2009-05-09
  • 打赏
  • 举报
回复
可以使用传递参数的形式来确定是哪个窗口打开的
如果你要打开C,可以这样定义

a 窗口代码:
openwithparm(aa,'a')
b窗口代码:
openwithparm(aa,'b')

然后在C里面定义一个实例变量
public:
string is_parent

在open 里写:
is_parent=message.stringparm

这样通过 aa.is_parent就可以判断是谁打开的了
当然这样就可以进行相关的操作了。
例如在C里面进行:
choose case is_parent
case 'a'
a.sle_1.text="help" //注意是a而不是aa
case 'b'
b.sle_1.text="help"
end choose


如果要通过Global Variables的形式来进行操作,那么应该定义成 a aa否则在design模式是不能允许写 aa.sle_1的,因为 window根本就没有sle_1

方式很多,也可以使用比较优化方式dynamic:
window aa

aa.dynamic wf_setvalue("help")


程老妖 2009-05-09
  • 打赏
  • 举报
回复
如果C窗口类型为响应窗口,就可以直接在c里用ClassName(ParentWindow())来得到是谁打开的窗口名!

1,076

社区成员

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

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