社区
控件与界面
帖子详情
窗口A明明打开,在窗口B中调用窗口A中的函数,提示null object reference at ...
l_chlmh
2009-08-26 02:30:02
前几天还好用的,今天突然间不好用了。
...全文
313
14
打赏
收藏
窗口A明明打开,在窗口B中调用窗口A中的函数,提示null object reference at ...
前几天还好用的,今天突然间不好用了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kenshu
2009-08-27
打赏
举报
回复
[Quote=引用 12 楼 gui41021 的回复:]
额 意思是不是
window lw_tmp
OpenSheet( lw_tmp, ls_A)
然后
OPEN(B)
B为当前窗口时,此时如果调用A的函数提示NULL OBJECT,isvalid(A) == false 是因为实例化的只是LW_TMP,WINDOW类型,窗口类A并没有实例化,所以不能调用
[/Quote]
对.大致可以这样理解.
isvalid(A),这个时候的A,是一个全局变量的名称。它没有被实例化.所以isvalid(A)是FALSE
你可以在A的OPEN事件中,加入一句
A = this //前面的A是全局变量.这一句并不是使A这个全局变量实例化,而是使这个全局变量指向你刚才随手定义的lw_tmp
这样后面的B,就可以 a.wf_function_name(parmname)......
dahaidao
2009-08-27
打赏
举报
回复
别opensheet了,直接open试一下。
gui41021
2009-08-27
打赏
举报
回复
额 意思是不是
window lw_tmp
OpenSheet( lw_tmp, ls_A)
然后
OPEN(B)
B为当前窗口时,此时如果调用A的函数提示NULL OBJECT,isvalid(A) == false 是因为实例化的只是LW_TMP,WINDOW类型,窗口类A并没有实例化,所以不能调用
kenshu
2009-08-26
打赏
举报
回复
[Quote=引用 10 楼 kenshu 的回复:]
实际上,是PB的语法"帮我们"混淆了类名和实例.//在一些情况下,w_child_1表示类名,另一些情况下,w_child_1又表示实例,还有一些情况下,它又表示全局变量.
[/Quote]
比如
w_child_1 lw //这个时候w_child_1是类名
open(w_child_1)//这个时候,w_child_1是一个全局变量,并且把这个全局变量实例化.在OPEN之前,这个变量还不是一个实例.//isvalid(w_child_1) == false
open后,这个全局变量实例化了,isvalid(w_child_1) == true
kenshu
2009-08-26
打赏
举报
回复
[Quote=引用 6 楼 l_chlmh 的回复:]
window child
OpenSheetWithParm(child, sle_state, &
"w_child_1", MDI_User, 4, Layered!)
[/Quote]
你后面用类似于 close(w_child_1),写是没问题,运行时会出错的(有时仅仅没有任何反应)
你要是想简单一点.
在 w_child_1的open事件中,加一句
w_child_1 = this
就可以了.
实际上,是PB的语法"帮我们"混淆了类名和实例.//在一些情况下,w_child_1表示类名,另一些情况下,w_child_1又表示实例,还有一些情况下,它又表示全局变量.
l_chlmh
2009-08-26
打赏
举报
回复
我刚才用了
A中的按钮事件
string ls_pp
openwithparm(B,ls_pp)
ls_pp= message.stringparm
if ls_pp='执行' then
wf_init()
else
return;
end if
B的退出按钮:closewithreturn(parent,'执行')
的办法倒是可以,但是仅限于response窗口。
gui41021
2009-08-26
打赏
举报
回复
if ls_name = 'w_child_1' then OpenSheetwithparm( w_child_1 ,'parm', MDI_user, 5, Layered! )
这样打开,A B调用倒是没问题,不过不现实,太笨了。
或者不能调函数,调事件呗。。。
Window lw_ActiveSheet
lw_ActiveSheet = ParentWindow.GetActiveSheet()
IF IsValid(lw_ActiveSheet) THEN
lw_ActiveSheet.TriggerEvent(as_event)
End If
你要是自己找到解决办法了,也告诉我下。
l_chlmh
2009-08-26
打赏
举报
回复
[Quote=引用 4 楼 gui41021 的回复:]
OpenSheet( lw_tmp, ls_windowname , w_main_frame, 5, Layered! ) //1
OpenSheet( w_1 , w_main_frame, 5, Layered! )//2
方法1打开的窗口A(ls_windowname),B窗口不能调用它的任何函数
--------------------
能不能调用A.函数 取决于A是否是已创建的实例,与谁来调用无关
所以您要看看A是怎么打开的
--------------------
这样考虑
在点击A.cb_1
打开B的时候传参数过去
在A.cb_1的clicked事件写:
datawindow ldw
ldw = A.dw_1
openwithparm(B,ldw )
在B定义一实例变量datawindow idw
在B的open事件写:
idw = message.powerobjectparm
然后就可以在B的cb_1的clicked事件写:
idw.retrieve()
-----------------
我前几天遇到同样的问题,这是兄弟们给的解决办法 应该可以解决
[/Quote]
能不能想办法得到A的实例名。
l_chlmh
2009-08-26
打赏
举报
回复
window child
OpenSheetWithParm(child, sle_state, &
"w_child_1", MDI_User, 4, Layered!)
l_chlmh
2009-08-26
打赏
举报
回复
大哥,情况和1一样,我的菜单是动态生成的。我刚才打开看了看。
gui41021
2009-08-26
打赏
举报
回复
OpenSheet( lw_tmp, ls_windowname , w_main_frame, 5, Layered! ) //1
OpenSheet( w_1 , w_main_frame, 5, Layered! )//2
方法1打开的窗口A(ls_windowname),B窗口不能调用它的任何函数
--------------------
能不能调用A.函数 取决于A是否是已创建的实例,与谁来调用无关
所以您要看看A是怎么打开的
--------------------
这样考虑
在点击A.cb_1
打开B的时候传参数过去
在A.cb_1的clicked事件写:
datawindow ldw
ldw = A.dw_1
openwithparm(B,ldw )
在B定义一实例变量datawindow idw
在B的open事件写:
idw = message.powerobjectparm
然后就可以在B的cb_1的clicked事件写:
idw.retrieve()
-----------------
我前几天遇到同样的问题,这是兄弟们给的解决办法 应该可以解决
jlwei888
2009-08-26
打赏
举报
回复
代码?问题要说清楚啊!
l_chlmh
2009-08-26
打赏
举报
回复
所以我也感觉奇怪,就连A窗口上的菜单调用窗口的函数也不好用,regenerate过了,没用。
jlwei888
2009-08-26
打赏
举报
回复
不可能的!
使用的对象为空!你再好好检查吧!
这几天这么多访问其它窗口的问题!
Databinding:setTag(java.lang.
Object
)‘ on a
null
object
reference
问题处理。
当自定义view使用databinding来赋值时,运行发现在BindingImpl类
中
报错:view.setTag(java.lang.
Object
)' on a
null
object
reference
。自定义view为
null
,分析猜测是由于自定义view的构造
函数
出了问题。经过反复测试发现,自定义view的四个构造
函数
必须重写,由于view源码
中
View(Context context)和View(Context context, @
Null
able AttributeSet attrs, int
android.content.Context.getSystemService(java.lang.String)' on a
null
object
reference
今天使用View填充ViewPager时,遇到这个错误
Object
android.content.Context.getSystemService(java.lang.String)' on a
null
object
reference
这是因为Context为空导致。 错误代码: 父类BasePager代码: ...
Object
reference
not set to an instance of an
object
.
今天从A界面跳转到B界面,并
调用
B界面
中
函数
的时候,会报错“
Object
reference
not set to an instance of an
object
.”这个错误,是什么原因呢? 代码
中
声明了这么一个变量(在从A界面跳转到B界面的过程
中
都没给KSRQ这个变量赋值) public string KSRQ ;当用到this.KSRQ.Trim() != ""的时候,会报出“Objec
Android开发
中
出现Attempt to invoke virtual method...on a
null
object
reference
加载Android布局文件时出现错误: java.lang.
Null
PointerException: Attempt to invoke virtual method '........' on a
null
object
reference
出错原因可能是未能在正确的View环境下使用findViewById()方法。
JNI学习2.jni
函数
调用
java方法
这里需要注意com.example.hello_cmake.TestCallBack是类的完整路径,但是识别的时候是以Linux标准进行的,因此里面的.要替换成/来表示路径。jni
函数
本身也算是java类的一个成员方法,在
调用
的时候,需要先实例化TestCallBack类,再进行
调用
。在java
中
,类的成员方法必须以实例
调用
的形式
调用
,因此必须实例化一个对象,才能
调用
成员
函数
add。
调用
方法的
函数
参数
中
,前两个分别为实例与方法的ID,后面的参数则是
调用
的java方法的参数。第三步:实例化一个对象。.....
控件与界面
604
社区成员
12,293
社区内容
发帖
与我相关
我的任务
控件与界面
PowerBuilder 控件与界面
复制链接
扫一扫
分享
社区描述
PowerBuilder 控件与界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章