Jump to content

Check value of multiple ComboBoxes


Recommended Posts

Is it possible to check the value of a ComboBox against the values of other ComboBoxes?

The only thing I can think of is by making an IF statement for each of the ComboBoxes. But that means I'm getting a lot of code, because I have 10 combo boxes.

Goal is to check if the selected value is not the same as the value in one of the other ComboBoxes.

Link to comment
Share on other sites

You need to think with an array. You DO have to check all combos. But if you keep all the controls in an array you can run the array through a loop.

An example I tossed together.

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $ahCombo[10][2]
$t = 25
Opt("GUIOnEventMode", 1)
$hGUI = GUICreate("ComboTest", 500, 500)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
For $i = 0 To UBound($ahCombo) - 1
 $ahCombo[$i][0] = GUICtrlCreateCombo("", 10, $t, 150, 20)
 GUICtrlSetData(-1, "Choice1|Choice2|Choice3|Choice4|Choice5|Choice6|Choice7|Choice8|Choice9|Choice10|Choice11|Choice12")
 GUICtrlSetOnEvent(-1, "_ComboSelection")
 $t += 25
Next
GUISetState(@SW_SHOW, $hGUI)
While 1
    Sleep(10)
WEnd
Func _ComboSelection()
 Local $sComboTxt
 Local $iExists = 0
 For $i = 0 To UBound($ahCombo) - 1
  If @GUI_CTRLID = $ahCombo[$i][0] Then
   $sComboTxt = GUICtrlRead(@GUI_CTRLID)
   For $n = 0 To UBound($ahCombo) - 1
    If $ahCombo[$n][1] = $sComboTxt Then
     $iExists = 1
     GUICtrlSetBkColor($ahCombo[$n][0], 0xFF0000)
     GUICtrlSetState($ahCombo[$n][0], $GUI_FOCUS)
     ExitLoop
    Else
     GUICtrlSetBkColor($ahCombo[$n][0], 0xFFFFFF)
     GUICtrlSetState($ahCombo[$n][0], $GUI_FOCUS)
     ContinueLoop
    EndIf
   Next
   If $iExists Then
    GUICtrlSetBkColor($ahCombo[$i][0], 0xFF0000)
    GUICtrlSetState($ahCombo[$i][0], $GUI_FOCUS)
   Else
    GUICtrlSetBkColor($ahCombo[$i][0], 0xFFFFFF)
    GUICtrlSetState($ahCombo[$i][0], $GUI_FOCUS)
    $ahCombo[$i][1] = $sComboTxt
   EndIf
   ExitLoop
  EndIf
 Next
EndFunc
Func _Exit()
    Exit
EndFunc
Edited by ZacUSNYR
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...