jackylee0908 Posted December 27, 2018 Posted December 27, 2018 (edited) Hi sir, I am new for AutoIt, I am trying to code a GUI with two groups of Radio options for user, and depends on the Radio selection I'd want to gray out(or say disable) specific Input fields, please guide me how to achieve it, thanks in advance. Here is the executable code which created by Koda. expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= Global $PG = GUICreate("Parameter Generator", 1059, 576, 241, 156) Global $TestTarget = GUICtrlCreateGroup("Test Target", 40, 48, 457, 73) Global $AC = GUICtrlCreateRadio("AC Cycle", 64, 80, 73, 17) Global $DC = GUICtrlCreateRadio("DC Cycle", 168, 80, 73, 17) Global $Reboot = GUICtrlCreateRadio("Reboot Cycle", 272, 80, 97, 17) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $Label1 = GUICtrlCreateLabel("1. Please Select Test", 40, 24, 105, 17) Global $Label2 = GUICtrlCreateLabel("2. Please Select Node(s)", 40, 152, 121, 17) Global $NodeSelection = GUICtrlCreateGroup("Node Selection", 40, 176, 457, 73) Global $SingleNode = GUICtrlCreateRadio("Single Node", 64, 208, 73, 17) Global $TwoNodes = GUICtrlCreateRadio("Two Nodes", 168, 208, 73, 17) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $Label3 = GUICtrlCreateLabel("3. Please input parameters", 552, 24, 129, 17) Global $ParameterInput = GUICtrlCreateGroup("Parameter Input", 552, 56, 457, 489) Global $Label4 = GUICtrlCreateLabel("Node#1 BMC LAN Port IP Address", 576, 96, 169, 25, $SS_CENTERIMAGE) Global $N1BMCLANIP = GUICtrlCreateInput("", 752, 96, 161, 21) Global $Label5 = GUICtrlCreateLabel("Node#1 BMC Login Account", 576, 136, 141, 25, $SS_CENTERIMAGE) Global $N1BMCAC = GUICtrlCreateInput("", 752, 136, 161, 21) Global $Label6 = GUICtrlCreateLabel("Node#1 BMC Login Password", 576, 176, 147, 25, $SS_CENTERIMAGE) Global $N1BMCPW = GUICtrlCreateInput("", 752, 176, 161, 21) Global $Label7 = GUICtrlCreateLabel("Number of Cycle", 576, 216, 82, 25, $SS_CENTERIMAGE) Global $NumberCycle = GUICtrlCreateInput("", 752, 216, 161, 21) Global $Label8 = GUICtrlCreateLabel("PDU IP Address", 576, 256, 81, 25, $SS_CENTERIMAGE) Global $PDUIP = GUICtrlCreateInput("", 752, 256, 161, 21) Global $Label9 = GUICtrlCreateLabel("PDU Port Number", 576, 296, 89, 25, $SS_CENTERIMAGE) Global $PDUPort = GUICtrlCreateInput("", 752, 296, 161, 21) Global $Label20 = GUICtrlCreateLabel("Node#1 OS Login Account", 576, 336, 133, 25, $SS_CENTERIMAGE) Global $N1OSAC = GUICtrlCreateInput("", 752, 336, 161, 21) Global $Label11 = GUICtrlCreateLabel("Node#1 OS Login Password", 576, 376, 139, 25, $SS_CENTERIMAGE) Global $N1OSPW = GUICtrlCreateInput("", 752, 376, 161, 21) Global $Label12 = GUICtrlCreateLabel("Node#1 OS LAN Port IP Address", 576, 416, 161, 25, $SS_CENTERIMAGE) Global $N1OSLANIP = GUICtrlCreateInput("", 752, 416, 161, 21) Global $Label13 = GUICtrlCreateLabel("Node#2 BMC LAN Port IP Address", 576, 456, 169, 25, $SS_CENTERIMAGE) Global $N2BMCLANIP = GUICtrlCreateInput("", 752, 456, 161, 21) Global $Label14 = GUICtrlCreateLabel("Node#2 OS LAN Port IP Address", 576, 496, 161, 25, $SS_CENTERIMAGE) Global $N2OSLANIP = GUICtrlCreateInput("", 752, 496, 161, 21) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $SaveButton = GUICtrlCreateButton("Save", 64, 296, 75, 25) Global $ClearButton = GUICtrlCreateButton("Clear", 208, 296, 75, 25) Global $ExitButton = GUICtrlCreateButton("Exit", 360, 296, 75, 25) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE ExitLoop Case $SaveButton FileWrite("parameter.conf", GUICtrlRead($N1BMCLANIP)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1BMCAC)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1BMCPW)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($NumberCycle)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($PDUIP)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($PDUPort)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1OSAC)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1OSPW)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1OSLANIP)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N2BMCLANIP)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N2OSLANIP)) MsgBox(0, "Save", "Parameter Saved") Case $ClearButton GUICtrlSetData($N1BMCLANIP, "") GUICtrlSetData($N1BMCAC, "") GUICtrlSetData($N1BMCPW, "") GUICtrlSetData($NumberCycle, "") GUICtrlSetData($PDUIP, "") GUICtrlSetData($PDUPort, "") GUICtrlSetData($N1OSAC, "") GUICtrlSetData($N1OSPW, "") GUICtrlSetData($N1OSLANIP, "") GUICtrlSetData($N2BMCLANIP, "") GUICtrlSetData($N2OSLANIP, "") MsgBox(0, "Clear", "Parameter Cleared") Case $ExitButton ExitLoop EndSwitch WEnd For example: 'DC Cycle' in Group 'Test Target' and 'Single Node' in Group 'Node Selection' are selected by user, then I'd like to gray out/disable below Inputs: Global $Label8 = GUICtrlCreateLabel("PDU IP Address", 576, 256, 81, 25, $SS_CENTERIMAGE) Global $PDUIP = GUICtrlCreateInput("", 752, 256, 161, 21) Global $Label9 = GUICtrlCreateLabel("PDU Port Number", 576, 296, 89, 25, $SS_CENTERIMAGE) Global $PDUPort = GUICtrlCreateInput("", 752, 296, 161, 21) Global $Label20 = GUICtrlCreateLabel("Node#1 OS Login Account", 576, 336, 133, 25, $SS_CENTERIMAGE) Global $N1OSAC = GUICtrlCreateInput("", 752, 336, 161, 21) Global $Label11 = GUICtrlCreateLabel("Node#1 OS Login Password", 576, 376, 139, 25, $SS_CENTERIMAGE) Global $N1OSPW = GUICtrlCreateInput("", 752, 376, 161, 21) Global $Label12 = GUICtrlCreateLabel("Node#1 OS LAN Port IP Address", 576, 416, 161, 25, $SS_CENTERIMAGE) Global $N1OSLANIP = GUICtrlCreateInput("", 752, 416, 161, 21) Global $Label13 = GUICtrlCreateLabel("Node#2 BMC LAN Port IP Address", 576, 456, 169, 25, $SS_CENTERIMAGE) Global $N2BMCLANIP = GUICtrlCreateInput("", 752, 456, 161, 21) Global $Label14 = GUICtrlCreateLabel("Node#2 OS LAN Port IP Address", 576, 496, 161, 25, $SS_CENTERIMAGE) Global $N2OSLANIP = GUICtrlCreateInput("", 752, 496, 161, 21) But only keep below Input fields for user. Global $Label4 = GUICtrlCreateLabel("Node#1 BMC LAN Port IP Address", 576, 96, 169, 25, $SS_CENTERIMAGE) Global $N1BMCLANIP = GUICtrlCreateInput("", 752, 96, 161, 21) Global $Label5 = GUICtrlCreateLabel("Node#1 BMC Login Account", 576, 136, 141, 25, $SS_CENTERIMAGE) Global $N1BMCAC = GUICtrlCreateInput("", 752, 136, 161, 21) Global $Label6 = GUICtrlCreateLabel("Node#1 BMC Login Password", 576, 176, 147, 25, $SS_CENTERIMAGE) Global $N1BMCPW = GUICtrlCreateInput("", 752, 176, 161, 21) Global $Label7 = GUICtrlCreateLabel("Number of Cycle", 576, 216, 82, 25, $SS_CENTERIMAGE) Global $NumberCycle = GUICtrlCreateInput("", 752, 216, 161, 21) Thanks, Jacky Edited January 11, 2019 by jackylee0908
jackylee0908 Posted December 27, 2018 Author Posted December 27, 2018 After googling it I have solved it, see below code. expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= Global $hGUI = GUICreate("Parameter Generator", 1059, 576, 241, 156) Global $hPic_background = GUICtrlCreatePic("d:\bg.jpg", 0, 0, 1059, 576) Global $TestTarget = GUICtrlCreateGroup("Test Target", 40, 48, 457, 73) Global $AC = GUICtrlCreateRadio("AC Cycle", 64, 80, 73, 17) Global $DC = GUICtrlCreateRadio("DC Cycle", 168, 80, 73, 17) GUICtrlSetState(-1, $GUI_CHECKED) Global $Reboot = GUICtrlCreateRadio("Reboot Cycle", 272, 80, 97, 17) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $Label1 = GUICtrlCreateLabel("1. Please Select Test", 40, 24, 105, 17) Global $Label2 = GUICtrlCreateLabel("2. Please Select Node(s)", 40, 152, 121, 17) Global $NodeSelection = GUICtrlCreateGroup("Node Selection", 40, 176, 457, 73) Global $SingleNode = GUICtrlCreateRadio("Single Node", 64, 208, 73, 17) GUICtrlSetState(-1, $GUI_CHECKED) Global $TwoNodes = GUICtrlCreateRadio("Two Nodes", 168, 208, 73, 17) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $Label3 = GUICtrlCreateLabel("3. Please input parameters", 552, 24, 129, 17) Global $ParameterInput = GUICtrlCreateGroup("Parameter Input", 552, 56, 457, 489) Global $Label4 = GUICtrlCreateLabel("Node#1 BMC LAN Port IP Address", 576, 96, 169, 25, $SS_CENTERIMAGE) Global $N1BMCLANIP = GUICtrlCreateInput("", 752, 96, 161, 21) Global $Label5 = GUICtrlCreateLabel("Node#1 BMC Login Account", 576, 136, 141, 25, $SS_CENTERIMAGE) Global $N1BMCAC = GUICtrlCreateInput("", 752, 136, 161, 21) Global $Label6 = GUICtrlCreateLabel("Node#1 BMC Login Password", 576, 176, 147, 25, $SS_CENTERIMAGE) Global $N1BMCPW = GUICtrlCreateInput("", 752, 176, 161, 21) Global $Label7 = GUICtrlCreateLabel("Number of Cycle", 576, 216, 82, 25, $SS_CENTERIMAGE) Global $NumberCycle = GUICtrlCreateInput("", 752, 216, 161, 21) Global $Label8 = GUICtrlCreateLabel("PDU IP Address", 576, 256, 81, 25, $SS_CENTERIMAGE) Global $PDUIP = GUICtrlCreateInput("", 752, 256, 161, 21) GUICtrlSetState(-1, $GUI_DISABLE) Global $Label9 = GUICtrlCreateLabel("PDU Port Number", 576, 296, 89, 25, $SS_CENTERIMAGE) Global $PDUPort = GUICtrlCreateInput("", 752, 296, 161, 21) GUICtrlSetState(-1, $GUI_DISABLE) Global $Label20 = GUICtrlCreateLabel("Node#1 OS Login Account", 576, 336, 133, 25, $SS_CENTERIMAGE) Global $N1OSAC = GUICtrlCreateInput("", 752, 336, 161, 21) GUICtrlSetState(-1, $GUI_DISABLE) Global $Label11 = GUICtrlCreateLabel("Node#1 OS Login Password", 576, 376, 139, 25, $SS_CENTERIMAGE) Global $N1OSPW = GUICtrlCreateInput("", 752, 376, 161, 21) GUICtrlSetState(-1, $GUI_DISABLE) Global $Label12 = GUICtrlCreateLabel("Node#1 OS LAN Port IP Address", 576, 416, 161, 25, $SS_CENTERIMAGE) Global $N1OSLANIP = GUICtrlCreateInput("", 752, 416, 161, 21) GUICtrlSetState(-1, $GUI_DISABLE) Global $Label13 = GUICtrlCreateLabel("Node#2 BMC LAN Port IP Address", 576, 456, 169, 25, $SS_CENTERIMAGE) Global $N2BMCLANIP = GUICtrlCreateInput("", 752, 456, 161, 21) GUICtrlSetState(-1, $GUI_DISABLE) Global $Label14 = GUICtrlCreateLabel("Node#2 OS LAN Port IP Address", 576, 496, 161, 25, $SS_CENTERIMAGE) Global $N2OSLANIP = GUICtrlCreateInput("", 752, 496, 161, 21) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $SaveButton = GUICtrlCreateButton("Save", 64, 296, 75, 25) Global $ClearButton = GUICtrlCreateButton("Clear", 208, 296, 75, 25) Global $ExitButton = GUICtrlCreateButton("Exit", 360, 296, 75, 25) GUISetState(@SW_SHOW, $hGUI) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE ExitLoop Case $AC If BitAND(GUICtrlRead($AC), $GUI_CHECKED) = $GUI_CHECKED Then If BitAND(GUICtrlRead($SingleNode), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 64) GUICtrlSetState($PDUPort, 64) GUICtrlSetState($N1OSAC, 128) GUICtrlSetState($N1OSPW, 128) GUICtrlSetState($N1OSLANIP, 128) GUICtrlSetState($N2BMCLANIP, 128) GUICtrlSetState($N2OSLANIP, 128) ElseIf BitAND(GUICtrlRead($TwoNodes), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 64) GUICtrlSetState($PDUPort, 64) GUICtrlSetState($N1OSAC, 128) GUICtrlSetState($N1OSPW, 128) GUICtrlSetState($N1OSLANIP, 128) GUICtrlSetState($N2BMCLANIP, 64) GUICtrlSetState($N2OSLANIP, 128) EndIf EndIf Case $DC If BitAND(GUICtrlRead($DC), $GUI_CHECKED) = $GUI_CHECKED Then If BitAND(GUICtrlRead($SingleNode), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 128) GUICtrlSetState($PDUPort, 128) GUICtrlSetState($N1OSAC, 128) GUICtrlSetState($N1OSPW, 128) GUICtrlSetState($N1OSLANIP, 128) GUICtrlSetState($N2BMCLANIP, 128) GUICtrlSetState($N2OSLANIP, 128) ElseIf BitAND(GUICtrlRead($TwoNodes), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 128) GUICtrlSetState($PDUPort, 128) GUICtrlSetState($N1OSAC, 128) GUICtrlSetState($N1OSPW, 128) GUICtrlSetState($N1OSLANIP, 128) GUICtrlSetState($N2BMCLANIP, 64) GUICtrlSetState($N2OSLANIP, 128) EndIf EndIf Case $Reboot If BitAND(GUICtrlRead($Reboot), $GUI_CHECKED) = $GUI_CHECKED Then If BitAND(GUICtrlRead($SingleNode), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 128) GUICtrlSetState($PDUPort, 128) GUICtrlSetState($N1OSAC, 64) GUICtrlSetState($N1OSPW, 64) GUICtrlSetState($N1OSLANIP, 64) GUICtrlSetState($N2BMCLANIP, 128) GUICtrlSetState($N2OSLANIP, 128) ElseIf BitAND(GUICtrlRead($TwoNodes), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 128) GUICtrlSetState($PDUPort, 128) GUICtrlSetState($N1OSAC, 64) GUICtrlSetState($N1OSPW, 64) GUICtrlSetState($N1OSLANIP, 64) GUICtrlSetState($N2BMCLANIP, 64) GUICtrlSetState($N2OSLANIP, 64) EndIf EndIf Case $SingleNode If BitAND(GUICtrlRead($SingleNode), $GUI_CHECKED) = $GUI_CHECKED Then If BitAND(GUICtrlRead($AC), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 64) GUICtrlSetState($PDUPort, 64) GUICtrlSetState($N1OSAC, 128) GUICtrlSetState($N1OSPW, 128) GUICtrlSetState($N1OSLANIP, 128) GUICtrlSetState($N2BMCLANIP, 128) GUICtrlSetState($N2OSLANIP, 128) ElseIf BitAND(GUICtrlRead($DC), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 128) GUICtrlSetState($PDUPort, 128) GUICtrlSetState($N1OSAC, 128) GUICtrlSetState($N1OSPW, 128) GUICtrlSetState($N1OSLANIP, 128) GUICtrlSetState($N2BMCLANIP, 128) GUICtrlSetState($N2OSLANIP, 128) ElseIf BitAND(GUICtrlRead($Reboot), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 128) GUICtrlSetState($PDUPort, 128) GUICtrlSetState($N1OSAC, 64) GUICtrlSetState($N1OSPW, 64) GUICtrlSetState($N1OSLANIP, 64) GUICtrlSetState($N2BMCLANIP, 128) GUICtrlSetState($N2OSLANIP, 128) EndIf EndIf Case $TwoNodes If BitAND(GUICtrlRead($TwoNodes), $GUI_CHECKED) = $GUI_CHECKED Then If BitAND(GUICtrlRead($AC), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 64) GUICtrlSetState($PDUPort, 64) GUICtrlSetState($N1OSAC, 128) GUICtrlSetState($N1OSPW, 128) GUICtrlSetState($N1OSLANIP, 128) GUICtrlSetState($N2BMCLANIP, 64) GUICtrlSetState($N2OSLANIP, 128) ElseIf BitAND(GUICtrlRead($DC), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 128) GUICtrlSetState($PDUPort, 128) GUICtrlSetState($N1OSAC, 128) GUICtrlSetState($N1OSPW, 128) GUICtrlSetState($N1OSLANIP, 128) GUICtrlSetState($N2BMCLANIP, 64) GUICtrlSetState($N2OSLANIP, 128) ElseIf BitAND(GUICtrlRead($Reboot), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($PDUIP, 128) GUICtrlSetState($PDUPort, 128) GUICtrlSetState($N1OSAC, 64) GUICtrlSetState($N1OSPW, 64) GUICtrlSetState($N1OSLANIP, 64) GUICtrlSetState($N2BMCLANIP, 64) GUICtrlSetState($N2OSLANIP, 64) EndIf EndIf Case $SaveButton FileWrite("parameter.conf", GUICtrlRead($N1BMCLANIP)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1BMCAC)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1BMCPW)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($NumberCycle)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($PDUIP)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($PDUPort)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1OSAC)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1OSPW)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N1OSLANIP)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N2BMCLANIP)) FileWrite("parameter.conf", " ") FileWrite("parameter.conf", GUICtrlRead($N2OSLANIP)) MsgBox(0, "Save", "Parameter Saved") Case $ClearButton GUICtrlSetData($N1BMCLANIP, "") GUICtrlSetData($N1BMCAC, "") GUICtrlSetData($N1BMCPW, "") GUICtrlSetData($NumberCycle, "") GUICtrlSetData($PDUIP, "") GUICtrlSetData($PDUPort, "") GUICtrlSetData($N1OSAC, "") GUICtrlSetData($N1OSPW, "") GUICtrlSetData($N1OSLANIP, "") GUICtrlSetData($N2BMCLANIP, "") GUICtrlSetData($N2OSLANIP, "") MsgBox(0, "Clear", "Parameter Cleared") Case $ExitButton ExitLoop EndSwitch WEnd
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