我用aardio写的两个窗体,第一段代码是父窗体的,目的是点击按钮后,把父窗体文本框的数据发送到子窗体的文本框,同时打开子窗体、关闭父窗体。目前可以实现以上功能,但是有报错:请帮我看看,请如果实在解决不了,就把错误弹出窗给禁止掉也行。谢谢!
报错信息如下:---------------------------
RAW CALLBACK ERROR
---------------------------
错误行号:#14
文件:[string "import win.ui;..."]:
不支持此操作: _get table
定义类型:self(namespace)
名字:'winform'
类型:null
---------------------------------------------------
调用栈:
[string "import win.ui;..."]:14: in function 'oncommand'
D:\aardio\lib\win\ui\_.aardio:749: in function 'proc'
D:\aardio\lib\win\ui\_.aardio:286: in function <D:\aardio\lib\win\ui\_.aardio:278>
[kernel]: in function 'messageTranslateDispatch'
D:\aardio\lib\win\_.aardio:557: in function 'parseMessage'
D:\aardio\lib\win\_.aardio:593: in function <D:\aardio\lib\win\_.aardio:581>
(tail call): ?
我的具体代码如下:
第一段代码是父窗体的:
[AAuto] 纯文本查看 复制代码 import win.ui;
/*DSG{{*/
mainForm = win.form(text="父窗体";right=372;bottom=292)
mainForm.add(
button={cls="button";text="发送并打开子窗体";left=134;top=209;right=255;bottom=254;z=2};
edit={cls="edit";left=19;top=58;right=360;bottom=186;edge=1;multiline=1;z=1}
)
/*}}*/
mainForm.button.oncommand = function(id,event){
var data = mainForm.edit.text; // 获取父窗体文本框的数据
var frmChild = mainForm.loadForm("\子窗体.aardio"); // 加载子窗体
publish("接收窗口消息", data); // 发布消息
winform.show(); // 显示子窗体
mainForm.close(); // 关闭父窗体
}
mainForm.show();
return win.loopMessage();
第二段代码是子窗体的:
[AAuto] 纯文本查看 复制代码 import win.ui;
/*DSG{{*/
var winform = win.form(text="接受数据";right=326;bottom=274;parent=...)
winform.add(
edit={cls="edit";left=12;top=13;right=315;bottom=185;edge=1;multiline=1;z=1}
)
/*}}*/
subscribe("接收窗口消息",function(data){
winform.edit.text = data;
})
winform.show();
win.loopMessage();
|