社区
控件与界面
帖子详情
窗口A明明打开,在窗口B中调用窗口A中的函数,提示null object reference at ...
l_chlmh
2009-08-26 02:30:02
前几天还好用的,今天突然间不好用了。
...全文
388
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
打赏
举报
回复
不可能的!
使用的对象为空!你再好好检查吧!
这几天这么多访问其它窗口的问题!
Claude连接失败与
提示
词失效的工程化排查指南
Claude并非传统聊天机器人,而是一个由客户端、运行时和模型服务三层强契约构成的AI执行系统。其连接异常(如err_bad_request、cowork requires modern installer)多源于层间协议错配,而非网络问题;
提示
词失效则常因将system字段误作自由文本,忽视其作为结构化API请求协议的本质——必须严格遵循content数组格式、model白名单及工具
调用
规范。这种分层架构与协议驱动设计,决定了Claude在代码审查、PR自动化、多模型协同等工程场景
中
具备可审计、可调度、可
SQL
中
CASE语句的四大核心用法与性能避坑指南
CASE语句是SQL
中
实现条件逻辑的基础能力,本质并非编程式if-else,而是查询执行计划
中
Projection阶段的‘条件投影器’。其原理在于静态编译、并行求值,严格受限于所在子句(SELECT/WHERE/GROUP BY/HAVING)的数据可见性与计算时机。技术价值体现在动态分组、条件过滤、实时数据清洗和业务标签生成等关键场景,广泛应用于BI报表开发、用户分层建模、电商大促看板及金融风控分析。本文聚焦CASE在真实工程
中
的高频误用——如HAVING
中
未聚合列引用、搜索CASE替代简单CASE导致性
DeepSeek-V4-Pro-Max在真实前端工程
中
的AI编程实践
AI编程是指利用大语言模型辅助软件开发全过程的技术范式,其核心在于对代码语义、运行时约束与工程上下文的深度建模。不同于LeetCode式评测,真实场景要求模型理解浏览器渲染帧率、WebSocket状态机、Canvas性能瓶颈等跨层约束,并能生成符合SOLID原则、兼容性规范与CI验证逻辑的可靠补丁。国产大模型DeepSeek-V4-Pro-Max凭借128K上下文建模能力、强类型Tool Calling意图翻译机制及架构级重构理解力,在十万行级协作图形系统
中
实现Bug修复一次通过、生产环境零指标异常。本文基
大模型量化从0到1(十二):FP8 实战——从 E4M3/E5M2 到 vLLM W8A8 部署
本文探讨了FP8(8位浮点数)在深度学习模型推理
中
的应用价值与技术细节。文章指出,FP8并非简单的"带小数点的INT8",而是通过E4M3/E5M2格式、缩放策略和计算路径的精心组合,在模型压缩与计算效率间取得的平衡点。与INT4等极致压缩方案不同,FP8更适合现代GPU硬件,能同时量化权重和激活值,在保持较高精度的同时获得约2倍的压缩收益和计算吞吐提升。 文章系统性地解析了FP8的核心技术要素,包括: 格式选择(E4M3精度优先 vs E5M2范围优先) 缩放粒度(张量级/通道级/Token级) 计算路径
jScope与MCU联合调试的操作实践
手把手带你完成jScope与MCU的串口/以太网连接、信号采集配置及实时波形观测,重点解决数据同步异常和采样率失配问题。借助jScope强大的可视化能力,快速定位嵌入式系统运行时的时序与数值偏差,提升调试效率。
控件与界面
604
社区成员
12,294
社区内容
发帖
与我相关
我的任务
控件与界面
PowerBuilder 控件与界面
复制链接
扫一扫
分享
社区描述
PowerBuilder 控件与界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章