lrstndm Posted December 1, 2011 Share Posted December 1, 2011 I have here a simple piece of my autoit script what i wanna do is: when my input is empty the checkbox have to be disabled. and when he is not empty the checkbox have to be enabled. this is my code: #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 349, 184, 192, 124) $Input1 = GUICtrlCreateInput("", 40, 24, 161, 21) $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 64, 89, 17) GUISetState(@SW_SHOW) While 1 $Msg = GUIGetMsg() Select Case $Msg = $GUI_EVENT_CLOSE Exit EndSelect WEnd Thanks in advance Lars Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 1, 2011 Moderators Share Posted December 1, 2011 lrstndm, You can do it like this: #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 349, 184, 192, 124) $Input1 = GUICtrlCreateInput("", 40, 24, 161, 21) $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 64, 89, 17) GUISetState(@SW_SHOW) While 1 $Msg = GUIGetMsg() Select Case $Msg = $GUI_EVENT_CLOSE Exit EndSelect If GUICtrlRead($Input1) = "" And BitAnd(GUICtrlGetState($Checkbox1), $GUI_ENABLE) Then GUICtrlSetState($Checkbox1, $GUI_DISABLE) EndIf If GUICtrlRead($Input1) <> "" And BitAnd(GUICtrlGetState($Checkbox1), $GUI_DISABLE) Then GUICtrlSetState($Checkbox1, $GUI_ENABLE) EndIf WEnd You need to check whether the checkbox is enabled/disabled or you get a lot of flashing. All clear. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
lrstndm Posted December 1, 2011 Author Share Posted December 1, 2011 Thanks this is excalty what i wanted Link to comment Share on other sites More sharing options...
Zedna Posted December 1, 2011 Share Posted December 1, 2011 (edited) Here is modified more elegant version using WM_COMMAND and EN_CHANGE notification expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> $Form1 = GUICreate("Form1", 349, 184, 192, 124) $Input1 = GUICtrlCreateInput("", 40, 24, 161, 21) $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 64, 89, 17) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") GUICtrlSetData($Input1, "") ; to be disabled at start While 1 $Msg = GUIGetMsg() Select Case $Msg = $GUI_EVENT_CLOSE Exit EndSelect WEnd Func WM_COMMAND($hWinHandle, $iMsg, $wParam, $lParam) If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WinAPI_LoWord($wParam) = $Input1 Then $data = GUICtrlRead($Input1) $enabled = IsEnabled($Checkbox1) If $data = "" And $enabled Then GUICtrlSetState($Checkbox1, $GUI_DISABLE) EndIf If $data <> "" And Not $enabled Then GUICtrlSetState($Checkbox1, $GUI_ENABLE) EndIf EndIf EndFunc ;==>WM_COMMAND Func IsEnabled($control) Return BitAnd(GUICtrlGetState($control),$GUI_ENABLE) = $GUI_ENABLE EndFunc Edited December 1, 2011 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 1, 2011 Moderators Share Posted December 1, 2011 Zedna,more elegant versionVery true - thanks for posting it. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now