w_ypcx_1.sle_1.text = w_ypcx_1.sle_1.text + upper(ls_name)
问题:这段代码能不能动态?如:
w_ypcx_2.sle_1.text = w_ypcx_2.sle_1.text + upper(ls_name)
9 个解决方案
#1
几个类似窗口可以用继承来做,
弹出同一个窗口返回输入的值,可以用CloseWhithReturn()函数。
弹出同一个窗口返回输入的值,可以用CloseWhithReturn()函数。
#2
window lw_ypcx1,lw_ypcx2
open(lw_ypcx1,'w_ypcx')
open(lw_ypcx2,'w_ypcx')
open(lw_ypcx1,'w_ypcx')
open(lw_ypcx2,'w_ypcx')
#3
window lw_ypcx1,lw_ypcx2
openwithparm(lw_ypcx1,'w_ypcx','标识1')
openwithparm(lw_ypcx2,'w_ypcx','标识2')
这样写更好一些
openwithparm(lw_ypcx1,'w_ypcx','标识1')
openwithparm(lw_ypcx2,'w_ypcx','标识2')
这样写更好一些
#4
逻辑上改变了一下,嗯,可以实现。但我想在虚拟键盘上点击,w_ypcx_1就能实时的有输入的字符显示出来。
#5
可能我标题取错了,以致您理解有误。我想实现w_keyboard的输入事件能动态实现,如贴的代码。
#6
w_ypcx_1.sle_1.text = w_ypcx_1.sle_1.text + upper(ls_name)
动态生成实现不了,你可以这样
w_ypcx_1 lw_data
if isvalid(w_ypcx_1) then
lw_data = w_ypcx_1
elseif isvalid(w_ypcx_2) then
lw_data = w_ypcx_2
......
end if
lw_data.sle_1.text = lw_data.sle_1.text + upper(ls_name)
#7
为w_keyboard声明一个实例变量如singlelineedit isle
然后在调用键盘时赋值,如:w_keyboard.isle=w_ypcx_2.sle_1
在输入时向这个控件发送消息,如:send(handle(isle),按键,?,?)
#8
第二次看这个帖子,好像明白楼主的意思啦
楼主是想两个窗口之间实时的传送数据吧?
如果两个窗口都开着的话,无法通过closewithreturn传送信息的。
刚试验了一下,楼主的代码,
w_keyboard 里可以下代码直接更改 w_ypcx_1.sle_1.text 值的,
也就是你自己的代码就可以实现你的目的
楼主是想两个窗口之间实时的传送数据吧?
如果两个窗口都开着的话,无法通过closewithreturn传送信息的。
刚试验了一下,楼主的代码,
w_keyboard 里可以下代码直接更改 w_ypcx_1.sle_1.text 值的,
也就是你自己的代码就可以实现你的目的
#9
zhangyangziwo说的应是楼主的意思了
//在对应窗口的控件事件中分别写
openwithparm(w_keyboard,'w_ypcx_1')
////////////
openwithparm(w_keyboard,'w_ypcx_2')
////////////
//在w_keyboard的open事件中接收标志,保存在局部变量中,is_bz
////////////
is_bz = Message.StringParm
////////////
//输入事件可通过局部变量中,is_bz进行区分
////////////
if is_bz ='w_ypcx_1' then
w_ypcx_1.sle_1.text = w_ypcx_1.sle_1.text + upper(ls_name)
end if
if is_bz ='w_ypcx_2' then
w_ypcx_2.sle_1.text = w_ypcx_2.sle_1.text + upper(ls_name)
end if
//在对应窗口的控件事件中分别写
openwithparm(w_keyboard,'w_ypcx_1')
////////////
openwithparm(w_keyboard,'w_ypcx_2')
////////////
//在w_keyboard的open事件中接收标志,保存在局部变量中,is_bz
////////////
is_bz = Message.StringParm
////////////
//输入事件可通过局部变量中,is_bz进行区分
////////////
if is_bz ='w_ypcx_1' then
w_ypcx_1.sle_1.text = w_ypcx_1.sle_1.text + upper(ls_name)
end if
if is_bz ='w_ypcx_2' then
w_ypcx_2.sle_1.text = w_ypcx_2.sle_1.text + upper(ls_name)
end if
#1
几个类似窗口可以用继承来做,
弹出同一个窗口返回输入的值,可以用CloseWhithReturn()函数。
弹出同一个窗口返回输入的值,可以用CloseWhithReturn()函数。
#2
window lw_ypcx1,lw_ypcx2
open(lw_ypcx1,'w_ypcx')
open(lw_ypcx2,'w_ypcx')
open(lw_ypcx1,'w_ypcx')
open(lw_ypcx2,'w_ypcx')
#3
window lw_ypcx1,lw_ypcx2
openwithparm(lw_ypcx1,'w_ypcx','标识1')
openwithparm(lw_ypcx2,'w_ypcx','标识2')
这样写更好一些
openwithparm(lw_ypcx1,'w_ypcx','标识1')
openwithparm(lw_ypcx2,'w_ypcx','标识2')
这样写更好一些
#4
逻辑上改变了一下,嗯,可以实现。但我想在虚拟键盘上点击,w_ypcx_1就能实时的有输入的字符显示出来。
#5
可能我标题取错了,以致您理解有误。我想实现w_keyboard的输入事件能动态实现,如贴的代码。
#6
w_ypcx_1.sle_1.text = w_ypcx_1.sle_1.text + upper(ls_name)
动态生成实现不了,你可以这样
w_ypcx_1 lw_data
if isvalid(w_ypcx_1) then
lw_data = w_ypcx_1
elseif isvalid(w_ypcx_2) then
lw_data = w_ypcx_2
......
end if
lw_data.sle_1.text = lw_data.sle_1.text + upper(ls_name)
#7
为w_keyboard声明一个实例变量如singlelineedit isle
然后在调用键盘时赋值,如:w_keyboard.isle=w_ypcx_2.sle_1
在输入时向这个控件发送消息,如:send(handle(isle),按键,?,?)
#8
第二次看这个帖子,好像明白楼主的意思啦
楼主是想两个窗口之间实时的传送数据吧?
如果两个窗口都开着的话,无法通过closewithreturn传送信息的。
刚试验了一下,楼主的代码,
w_keyboard 里可以下代码直接更改 w_ypcx_1.sle_1.text 值的,
也就是你自己的代码就可以实现你的目的
楼主是想两个窗口之间实时的传送数据吧?
如果两个窗口都开着的话,无法通过closewithreturn传送信息的。
刚试验了一下,楼主的代码,
w_keyboard 里可以下代码直接更改 w_ypcx_1.sle_1.text 值的,
也就是你自己的代码就可以实现你的目的
#9
zhangyangziwo说的应是楼主的意思了
//在对应窗口的控件事件中分别写
openwithparm(w_keyboard,'w_ypcx_1')
////////////
openwithparm(w_keyboard,'w_ypcx_2')
////////////
//在w_keyboard的open事件中接收标志,保存在局部变量中,is_bz
////////////
is_bz = Message.StringParm
////////////
//输入事件可通过局部变量中,is_bz进行区分
////////////
if is_bz ='w_ypcx_1' then
w_ypcx_1.sle_1.text = w_ypcx_1.sle_1.text + upper(ls_name)
end if
if is_bz ='w_ypcx_2' then
w_ypcx_2.sle_1.text = w_ypcx_2.sle_1.text + upper(ls_name)
end if
//在对应窗口的控件事件中分别写
openwithparm(w_keyboard,'w_ypcx_1')
////////////
openwithparm(w_keyboard,'w_ypcx_2')
////////////
//在w_keyboard的open事件中接收标志,保存在局部变量中,is_bz
////////////
is_bz = Message.StringParm
////////////
//输入事件可通过局部变量中,is_bz进行区分
////////////
if is_bz ='w_ypcx_1' then
w_ypcx_1.sle_1.text = w_ypcx_1.sle_1.text + upper(ls_name)
end if
if is_bz ='w_ypcx_2' then
w_ypcx_2.sle_1.text = w_ypcx_2.sle_1.text + upper(ls_name)
end if