sproxy
Full Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Disable / Enable кнопки, если в Input, в самом начале введен текст /buy. Проверка по событию Код: Opt('GUIOnEventMode', 1) Opt('MustDeclareVars', 1) Opt('TrayIconDebug', 1) #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> HotKeySet('{ESC}', '_Pro_Exit'); ESC - Закрыть скрипт Global $hMainWIn, $hInputTest, $hButtonApply $hMainWIn = GUICreate('Test', 400, 400) GUISetOnEvent($GUI_EVENT_CLOSE, '_Pro_Exit') $hInputTest = GUICtrlCreateInput('', 10, 20, 400-20, 20) $hButtonApply = GUICtrlCreateButton('Apply', 10, 50, 150, 25) GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND') GUISetState() #region: - Sleep, Exit, OnAutoItExit While 1 Sleep(10) WEnd Func _Pro_Exit() Exit EndFunc #endregion Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit If Not IsHWnd($hInputTest) Then $hWndEdit = GUICtrlGetHandle($hInputTest) $hWndFrom = $ilParam $iIDFrom = _WinAPI_LoWord($iwParam) $iCode = _WinAPI_HiWord($iwParam) Switch $hWndFrom Case $hWndEdit _DebugPrint('Action' & @LF & _ '-->hWndFrom:' & @TAB & $hWndFrom & @LF & _ '-->IDFrom:' & @TAB & $iIDFrom & @LF & _ '-->Code:' & @TAB & $iCode) Switch $iCode Case 256 _CheckInput($hInputTest, '(?i)^\/buy$|^\/buy\s+.*', $hButtonApply) Case 768 _CheckInput($hInputTest, '(?i)^\/buy$|^\/buy\s+.*', $hButtonApply) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND Func _DebugPrint($s_text, $line = @ScriptLineNumber) ConsoleWrite( _ "!===========================================================" & @LF & _ "+======================================================" & @LF & _ "-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _ "+======================================================" & @LF) EndFunc ;==>_DebugPrint ;~ $hInput - указатель на Input ;~ $sRegMask - pattern для StringRegExp ;~ $hButton - кнопка, состоние которой необходимо контролировать Func _CheckInput($hInput, $sRegMask, $hButton) Local $sText = GUICtrlRead($hInput) ;~ $sText = StringStripWS($sText, 1+2); если есть желание If StringRegExp($sText, $sRegMask) Then If BitAnd(GUICtrlGetState($hButton), $GUI_ENABLE) Then GUICtrlSetState($hButton, $GUI_DISABLE) Return EndIf If BitAnd(GUICtrlGetState($hButton), $GUI_DISABLE) Then GUICtrlSetState($hButton, $GUI_ENABLE) EndFunc | | Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 19:37 30-06-2009 | Исправлено: sproxy, 22:05 30-06-2009 |
|