Jewtus Posted January 22, 2015 Posted January 22, 2015 I have a group $ModeGroup = GUICtrlCreateGroup("Mode", 280, 8, 97, 65) and there are two radio buttons in it $Radio = GUICtrlCreateRadio("1", 288, 24, 81, 17) $Radio2 = GUICtrlCreateRadio("2", 288, 44, 81, 17) and I'm trying to make a case statement that when one of the radio buttons is selected, different parts of the GUI show or hide. This is what I tried, but its not working: Case $ModeGroup If GUICtrlRead($Radio) = 1 Then GUICtrlSetState($DODLabel,$GUI_SHOW) GUICtrlSetState($DODInput,$GUI_SHOW) Else GUICtrlSetState($DODLabel,$GUI_HIDE) GUICtrlSetState($DODInput,$GUI_HIDE) EndIf What am I doing wrong?
Moderators JLogan3o13 Posted January 22, 2015 Moderators Posted January 22, 2015 How are you controlling the change, through a button or immediately when you click on the radio button (full, runnable code would be awesome if you want assistance)? This works for me: #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> GUICreate("Test", 500, 500) $ModeGroup = GUICtrlCreateGroup("Mode", 280, 8, 97, 65) $Radio = GUICtrlCreateRadio("1", 288, 24, 81, 17) $Radio2 = GUICtrlCreateRadio("2", 288, 44, 81, 17) $lbl = GUICtrlCreateLabel("Test", 100, 400, 100, 20) $btn = GUICtrlCreateButton("Go", 10, 400, 60, 40) GUISetState(@SW_SHOW) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $btn GUICtrlSetState($lbl, (GUICtrlRead($Radio) = 1) ? $GUI_SHOW : $GUI_HIDE) EndSwitch WEnd GUIDelete() "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
Jewtus Posted January 22, 2015 Author Posted January 22, 2015 (edited) Its a pretty long script (this is part of the main GUI and there are about 5 guis in the script) I am trying to get the function to activate on click and not on a button click. I was hoping that setting the case to the group control would make it so when the group control was clicked, it would activate the case statement and then read the radio buttons. The example you posted is very similar to the parts of the script that I'm using. I am using a label and an input rather than just a label. Also, a question about what you posted... This line GUICtrlSetState($lbl, (GUICtrlRead($Radio) = 1) ? $GUI_SHOW : $GUI_HIDE) Does that look at a control and toggle based on the control? I understand that you are setting the label state and reading the radio control, but I don't understand the syntax for the ? $GUI_SHOW : $GUI_HIDE Edited January 22, 2015 by Jewtus
Moderators JLogan3o13 Posted January 22, 2015 Moderators Posted January 22, 2015 I get that your script is long, but adding the parts relevant to your question helps us help you. For example, are you using a switch like I am and GUIGetMsg, or are you using GUISetOnEvent? "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
Jewtus Posted January 22, 2015 Author Posted January 22, 2015 (edited) Sure thing, Here is the GUI part that I generate with KODA:$Main = GUICreate("Parameter Entry", 385, 135, 192, 114) $File = GUICtrlCreateMenu("&File") $ProcessFile = GUICtrlCreateMenuItem("Process by File"&@TAB&"Ctrl+F", $File) $SearchTypeLabel = GUICtrlCreateLabel("Search Type:", 4, 12, 85, 20) GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif") $SearchTypeCombo = GUICtrlCreateCombo("", 93, 10, 153, 25) GUICtrlSetData(-1, "Person Name|ID search") $ParameterLabel = GUICtrlCreateLabel("Parameter:", 4, 41, 85, 20) GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif") $ParameterInput = GUICtrlCreateInput("", 93, 39, 153, 21) $ModeGroup = GUICtrlCreateGroup("Mode", 280, 8, 97, 65) GUIStartGroup() $Radio = GUICtrlCreateRadio("1", 288, 24, 81, 17) GUICtrlSetState(-1,$GUI_CHECKED) $Radio2 = GUICtrlCreateRadio("2", 288, 44, 81, 17) $DODLabel = GUICtrlCreateLabel("Date", 10, 70, 85, 20) GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif") $DODInput = GUICtrlCreateDate("", 123, 68, 123, 21,(0x00)) $Button1 = GUICtrlCreateButton("Submit", 296, 77, 75, 25) GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) $cEnterDummy = GUICtrlCreateDummy() $cFileDummy = GUICtrlCreateDummy() Local $aAccelKeys[2][2] = [["{ENTER}", $cEnterDummy],["^f", $cFileDummy]] GUISetAccelerators($aAccelKeys) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE EndSwitch WEnd Edited January 22, 2015 by Jewtus
Moderators Solution JLogan3o13 Posted January 22, 2015 Moderators Solution Posted January 22, 2015 What about something like this? expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) $Main = GUICreate("Parameter Entry", 385, 135, 192, 114) $File = GUICtrlCreateMenu("&File") $ProcessFile = GUICtrlCreateMenuItem("Process by File"&@TAB&"Ctrl+F", $File) $SearchTypeLabel = GUICtrlCreateLabel("Search Type:", 4, 12, 85, 20) GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif") $SearchTypeCombo = GUICtrlCreateCombo("", 93, 10, 153, 25) GUICtrlSetData(-1, "Person Name|ID search") $ParameterLabel = GUICtrlCreateLabel("Parameter:", 4, 41, 85, 20) GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif") $ParameterInput = GUICtrlCreateInput("", 93, 39, 153, 21) $ModeGroup = GUICtrlCreateGroup("Mode", 280, 8, 97, 65) GUIStartGroup() $Radio = GUICtrlCreateRadio("1", 288, 24, 81, 17) GUICtrlSetOnEvent(-1, "setState") $Radio2 = GUICtrlCreateRadio("2", 288, 44, 81, 17) GUICtrlSetOnEvent(-1, "setState") $DODLabel = GUICtrlCreateLabel("Date", 10, 70, 85, 20) GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif") $DODInput = GUICtrlCreateDate("", 123, 68, 123, 21,(0x00)) $Button1 = GUICtrlCreateButton("Submit", 296, 77, 75, 25) GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) $cEnterDummy = GUICtrlCreateDummy() $cFileDummy = GUICtrlCreateDummy() Local $aAccelKeys[2][2] = [["{ENTER}", $cEnterDummy],["^f", $cFileDummy]] GUISetAccelerators($aAccelKeys) GUISetOnEvent($GUI_EVENT_CLOSE, "closeGUI") While 1 Sleep(100) WEnd Func setState() GUICtrlSetState($DODLabel, (GUICtrlRead($Radio) = 1) ? $GUI_SHOW : $GUI_HIDE) GUICtrlSetState($DODInput, (GUICtrlRead($Radio) = 1) ? $GUI_SHOW : $GUI_HIDE) EndFunc Func closeGUI() Exit EndFunc "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
Jewtus Posted January 22, 2015 Author Posted January 22, 2015 (edited) PERFECT!Thanks so much.Can you point me to a tutorial that might explain this in a little more detail:GUICtrlSetState($DODInput, (GUICtrlRead($DecedentsRadio) = 1) ? $GUI_SHOW : $GUI_HIDE)I don't understand how exactly it works, I do this manually for a lot of my scripts (if variable = x then GUI show else Gui hide) Edited January 22, 2015 by Jewtus
Moderators Melba23 Posted January 22, 2015 Moderators Posted January 22, 2015 Jewtus, Quote Can you point me to a tutorial that might explain this in a little more detail:Look in the Help file for "Ternary operator". M23 Jewtus 1 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: Reveal hidden contents 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
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