如何实现输入框之间的数据互相随之即时改变?[已解决]
本帖最后由 cashiba 于 2017-4-17 08:53 编辑#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
$Input1 = GUICtrlCreateInput("", 64, 32, 201, 21)
$Input2 = GUICtrlCreateInput("", 64, 80, 201, 21)
$Input3 = GUICtrlCreateInput("", 64, 128, 201, 21)
$Input4 = GUICtrlCreateInput("", 64, 176, 201, 21)
$Inputx = GUICtrlCreateInput("", 64, 240, 500, 89,$ws_border)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $inputx
GUICtrlSetData($inputx,GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4))
EndSwitch
WEnd
如上图及代码
如何实现:$input1、2、3、4输入框里输入数据,$inputx输入框里的数据随之即时变化;反之,$inputx里“/”分隔的四个部分数据里的任何一部分修改,在相应的$input1、2、3、4输入框里的数据也会随之即时改变。也就是即改即变。
上面的代码只能实现点击$inputx输入框后数据才会发生改变,不能自动随变。 本帖最后由 xzf680 于 2017-4-16 01:23 编辑
看一下是不是这样#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
$Input1 = GUICtrlCreateInput("", 64, 32, 201, 21)
$Input2 = GUICtrlCreateInput("", 64, 80, 201, 21)
$Input3 = GUICtrlCreateInput("", 64, 128, 201, 21)
$Input4 = GUICtrlCreateInput("", 64, 176, 201, 21)
$Inputx = GUICtrlCreateInput("", 64, 240, 500, 89,$ws_border)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
If GUICtrlRead($Input1) <>"" Then GUICtrlSetData($inputx,GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4))
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd 还是这样?#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
$Input1 = GUICtrlCreateInput("", 64, 32, 201, 21)
$Input2 = GUICtrlCreateInput("", 64, 80, 201, 21)
$Input3 = GUICtrlCreateInput("", 64, 128, 201, 21)
$Input4 = GUICtrlCreateInput("", 64, 176, 201, 21)
$Inputx = GUICtrlCreateInput("", 64, 240, 500, 89,$ws_border)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
If GUICtrlRead($Input1) <> "" Or GUICtrlRead($Input2) <> "" Or GUICtrlRead($Input3) <> "" Or GUICtrlRead($Input4) <> "" Then
GUICtrlSetData($inputx,GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4))
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd 注册wm_command消息,在udf的edit控件创建有示例 还是这样?
xzf680 发表于 2017-4-16 01:28 http://www.autoitx.com/images/common/back.gif
试过这样直接赋值。但是不好使,第一一直爱闪烁,第二大输入框无法操作,光标动不了...
感觉是需要注册消息才好使,目前不太熟悉 试过这样直接赋值。但是不好使,第一一直爱闪烁,第二大输入框无法操作,光标动不了...
感觉是需要注册消 ...
cashiba 发表于 2017-4-16 10:40 http://www.autoitx.com/images/common/back.gif
要注册消息
Func WM_COMMAND($hWnd, $msg, $WParam, $LParam) #include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
$Input1 = GUICtrlCreateInput("", 64, 32, 201, 21)
$Input2 = GUICtrlCreateInput("", 64, 80, 201, 21)
$Input3 = GUICtrlCreateInput("", 64, 128, 201, 21)
$Input4 = GUICtrlCreateInput("", 64, 176, 201, 21)
$Inputx = GUICtrlCreateInput("1", 64, 240, 500, 89,$ws_border)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
AdlibRegister('check',200)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $inputx
GUICtrlSetData($inputx,GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4))
EndSwitch
WEnd
Func check()
If GUICtrlRead($inputx) <> GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4) Then
GUICtrlSetData($inputx,GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4))
EndIf
EndFunc 关键词:
AdlibRegister('check',200)
Func check()
If GUICtrlRead($inputx) <> GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4) Then
GUICtrlSetData($inputx,GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4))
EndIf
EndFunc 反之,$inputx里“/”分隔的四个部分数据里的任何一部分修改,在相应的$input1、2、3、4输入框里的数据也会随之即时改变
此处代码类推 关键词:
AdlibRegister('check',200)
Func check()
If GUICtrlRead($inputx)GUICtrlRead($In ...
fenhanxue 发表于 2017-4-16 18:09 http://www.autoitx.com/images/common/back.gif
对了,回调函数定时刷新数据也是一种方法.... 回复 10# cashiba
编辑框的数据要使输入框里的数据也会随之即时改变,这个有点难 回复 1# cashiba
不就是這個的 變化應用而已??
http://www.autoitx.com/forum.php?mod=viewthread&tid=32910&highlight=INPUT 看看是这样不
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
$Input1 = GUICtrlCreateInput("", 64, 32, 201, 21)
$Input2 = GUICtrlCreateInput("", 64, 80, 201, 21)
$Input3 = GUICtrlCreateInput("", 64, 128, 201, 21)
$Input4 = GUICtrlCreateInput("", 64, 176, 201, 21)
$Inputx = GUICtrlCreateInput("", 64, 240, 500, 89,$ws_border)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Local $aaa = GUICtrlRead($inputx)
Local $bbb = GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4)
If$aaa <> $bbb Then GUICtrlSetData($inputx,GUICtrlRead($Input1)&"/"&GUICtrlRead($Input2)&"/"&GUICtrlRead($Input3)&"/"&GUICtrlRead($Input4))
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
看看是这样不
绿色风 发表于 2017-4-16 22:31 http://www.autoitx.com/images/common/back.gif
谢谢风侠.... 以上的方法好像都是只能实现单向随变。而且大输入框不能修改数据
{:face (52):}
页:
[1]
2