Что нового

После снятия галки с CheckBox не работает сообщение об отсутствии выбора

Rimm

Новичок
Сообщения
30
Репутация
0
При запуске скрипта, если не выбирать CheckBox и нажать Button, то выскакивает сообщение об отсутствии выбранных элементов. Но, если сначала выбрать CheckBox, нажать Button, затем снять все галочки, снова нажать Button, то сообщение об отсутствии выбранных элементов не появляется.
Скрипт от madmasles (Апрель 09, 2011, 16:11:17):
Код:
#include <GUIConstantsEx.au3>
$fYes = False
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 174, 116, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("1", 8, 8, 73, 33)
$Checkbox2 = GUICtrlCreateCheckbox("2", 8, 40, 65, 25)
$Checkbox3 = GUICtrlCreateCheckbox("3", 8, 64, 65, 25)
$Checkbox4 = GUICtrlCreateCheckbox("4", 8, 88, 57, 25)
$Button1 = GUICtrlCreateButton("Button1", 88, 32, 73, 33)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
                $fYes = True
                _1()
            EndIf
            If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
                $fYes = True
                _2()
            EndIf
            If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
                $fYes = True
                _3()
            EndIf
            If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
                $fYes = True
                _4()
            EndIf
            If Not $fYes Then
                MsgBox(16, 'Error', 'Вы ничего не выбрали')
            EndIf
    EndSwitch
WEnd

Func _1()
    MsgBox(0, "f", "1")
EndFunc   ;==>_1
Func _2()
    MsgBox(0, "f", "2")
EndFunc   ;==>_2
Func _3()
    MsgBox(0, "f", "3")
EndFunc   ;==>_3
Func _4()
    MsgBox(0, "f", "4")
EndFunc   ;==>_4
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Код:
#include <GUIConstantsEx.au3>
Global $Chack1 = False, $Chack2 = False, $Chack3 = False, $Chack4 = False

$Form1 = GUICreate("Form1", 174, 116, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("1", 8, 8, 73, 33)
$Checkbox2 = GUICtrlCreateCheckbox("2", 8, 40, 65, 25)
$Checkbox3 = GUICtrlCreateCheckbox("3", 8, 64, 65, 25)
$Checkbox4 = GUICtrlCreateCheckbox("4", 8, 88, 57, 25)
$Button1 = GUICtrlCreateButton("Button1", 88, 32, 73, 33)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
		Case $Checkbox1
            If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
                $Chack1 = True
			Else
				$Chack1 = False
            EndIf
		Case $Checkbox2
			If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
                $Chack2 = True
			Else
				$Chack2 = False	
            EndIf
		Case $Checkbox3
			If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
                $Chack3 = True
			Else
				$Chack3 = False	
            EndIf
		Case $Checkbox4
            If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
                $Chack4 = True
			Else
				$Chack4 = False	
            EndIf			
        Case $Button1
			If $Chack1 Then _1()
			If $Chack2 Then _2()
			If $Chack3 Then _3()
			If $Chack4 Then _4()	
            If (Not $Chack1) And (Not $Chack2) And (Not $Chack3) And (Not $Chack4) Then
                MsgBox(16, 'Error', 'Вы ничего не выбрали')
            EndIf
    EndSwitch
WEnd
 
Func _1()
    MsgBox(0, "f", "1")
EndFunc   ;==>_1
Func _2()
    MsgBox(0, "f", "2")
EndFunc   ;==>_2
Func _3()
    MsgBox(0, "f", "3")
EndFunc   ;==>_3
Func _4()
    MsgBox(0, "f", "4")
EndFunc   ;==>_4
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
В самом конце оператора Switch просто добавьте ещё одно условие.
Код:
;...
Case Else
	$fYes = False
;...
 
Верх