#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 295, 234, 193, 125)
$Input1 = GUICtrlCreateInput("Input1", 48, 48, 129, 21)
$Input2 = GUICtrlCreateInput("Input2", 48, 80, 129, 21)
$Input3 = GUICtrlCreateInput("Input3", 48, 112, 129, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$hForm = GUICreate("Form1", 320, 160, -1, -1)
$nInput1 = GUICtrlCreateInput("", 10, 10, 300, 20)
$nInput2 = GUICtrlCreateInput("", 10, 40, 300, 20)
$nInput3 = GUICtrlCreateInput("", 10, 70, 300, 20, $ES_READONLY)
$nInput4 = GUICtrlCreateInput("", 10, 100, 40, 20, $ES_READONLY)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func WM_COMMAND($hWnd, $imsg, $iwParam, $ilParam)
Local $nNotifyCode, $nID, $sFromInput1, $sFromInput2, $sToInput3
$nNotifyCode = BitShift($iwParam, 16)
$nID = BitAND($iwParam, 0xFFFF)
If $nNotifyCode = $EN_CHANGE Then
If $nID = $nInput1 Or $nID = $nInput2 Then
$sFromInput1 = GUICtrlRead($nInput1)
$sFromInput2 = GUICtrlRead($nInput2)
If $sFromInput1 And $sFromInput2 Then
$sToInput3 = StringLeft($sFromInput1 & '_' & $sFromInput2, 20)
GUICtrlSetData($nInput3, $sToInput3)
GUICtrlSetData($nInput4, StringLen($sToInput3))
EndIf
EndIf
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
Уберите.3ее поле не должно быть $ES_READONLY
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$hForm = GUICreate("Form1", 320, 160, -1, -1)
$nInput1 = GUICtrlCreateInput("", 10, 10, 300, 20)
$nInput2 = GUICtrlCreateInput("", 10, 40, 300, 20)
$nInput3 = GUICtrlCreateInput("", 10, 70, 300, 20)
$nInput4 = GUICtrlCreateInput("", 10, 100, 40, 20, $ES_READONLY)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func WM_COMMAND($hWnd, $imsg, $iwParam, $ilParam)
Local $nNotifyCode, $nID, $sFromInput1, $sFromInput2
$nNotifyCode = BitShift($iwParam, 16)
$nID = BitAND($iwParam, 0xFFFF)
If $nNotifyCode = $EN_CHANGE Then
Switch $nID
Case $nInput1, $nInput2
$sFromInput1 = GUICtrlRead($nInput1)
$sFromInput2 = GUICtrlRead($nInput2)
If $sFromInput1 And $sFromInput2 Then
GUICtrlSetData($nInput3, StringLeft($sFromInput1 & '_' & $sFromInput2, 20))
GUICtrlSetData($nInput4, StringLen(GUICtrlRead($nInput3)))
EndIf
Case $nInput3
GUICtrlSetData($nInput3, StringLeft(GUICtrlRead($nInput3), 20))
GUICtrlSetData($nInput4, StringLen(GUICtrlRead($nInput3)))
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
А GUIRegisterMsg() не "стандартная" функция?Я точно ж помню, что оно все делалось стандартными функциями.
В правилах также написано не создавать дублей тем, зачем создавать две темы с одинаковым заголовком, имеющее разное содержание?не хотел вопрос очередной задавать, вроде как в правилах так написано