Что нового

[Элементы GUI] Отключение кнопки если одно из полей ввода не содержит текста

ProNTSOFT

Новичок
Сообщения
7
Репутация
1
Версия AutoIt: 3.3.8.1

Описание: Отключение кнопки если одно из полей ввода не содержит текста.
Код:
#include <GUIConstantsEx.au3>

$Form1 = GUICreate("Form1", 138, 90, 192, 124)
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 21)
$Input2 = GUICtrlCreateInput("", 8, 32, 121, 21)
$Button1 = GUICtrlCreateButton("Button1", 8, 56, 75, 25)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit

	EndSwitch
WEnd


Примечания:
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Код:
#Include <GUIConstantsEx.au3>

Global $iState = False

$Form1 = GUICreate("Form1", 138, 90, 192, 124)
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 21)
$Input2 = GUICtrlCreateInput("", 8, 32, 121, 21)
$Button1 = GUICtrlCreateButton("Button1", 8, 56, 75, 25)
GUICtrlSetState($Button1, $GUI_DISABLE)
GUISetState(@SW_SHOW)

While 1

	$sValue1 = GUICtrlRead($Input1)
	$sValue2 = GUICtrlRead($Input2)

	If ((StringLen($sValue1) > 0) And (StringLen($sValue2) > 0)) Then
		If (Not $iState) Then
			GUICtrlSetState($Button1, $GUI_ENABLE)
			$iState = True
		EndIf
	Else
        If ($iState) Then
			GUICtrlSetState($Button1, $GUI_DISABLE)
			$iState = False
		EndIf
    EndIf

    Switch GUIGetMsg()
        Case -3
            Exit

    EndSwitch
WEnd
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
тоже самое с WM_COMMAND
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $iState = False

$hGui = GUICreate("Form1", 138, 90, 192, 124)
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 21)
$Input2 = GUICtrlCreateInput("", 8, 32, 121, 21)
$Button1 = GUICtrlCreateButton("Button1", 8, 56, 75, 25)
GUICtrlSetState($Button1, $GUI_DISABLE)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func WM_COMMAND($hWnd, $imsg, $iwParam, $ilParam)
	Local $nNotifyCode, $nID, $sText, $iInput0
	$nNotifyCode = BitShift($iwParam, 16)
	$nID = BitAND($iwParam, 0xFFFF)
	Switch $hWnd
		Case $hGui
			Switch $nID
				Case $Input1, $Input2
					Switch $nNotifyCode
						Case $EN_CHANGE
							If GUICtrlRead($Input1) And GUICtrlRead($Input2) Then
								If Not $iState Then
									GUICtrlSetState($Button1, $GUI_ENABLE)
									$iState = True
								EndIf
							Else
								If $iState Then
									GUICtrlSetState($Button1, $GUI_DISABLE)
									$iState = False
								EndIf
							EndIf
					EndSwitch
			EndSwitch
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
 
Верх