DyadyaGenya
Знающий
- Сообщения
- 300
- Репутация
- 10
Доброго времени суток. Не могу разобраться с операторами. Есть окошко, в котором с десяток выпадающих списков (чекбоксы). Нужно их проверить на три условия:
1. Если ни один не выбран
2. Если выбран хотя бы один.
3. Выбраны все
Первое получается. А потом в зависимости от моего кода то второе, то третье, то второе на своем месте и вместо третьего. Пробую вот так:
1. Если ни один не выбран
2. Если выбран хотя бы один.
3. Выбраны все
Первое получается. А потом в зависимости от моего кода то второе, то третье, то второе на своем месте и вместо третьего. Пробую вот так:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <WinAPI.au3>
#include <APIFilesConstants.au3>
#include <WinAPIError.au3>
#include <WinAPIFiles.au3>
#include <WinAPIMem.au3>
#include <AutoItConstants.au3>
#include <ComboConstants.au3>
Global $Combo1, $Combo2, $Combo3, $Combo4, $Combo5, $Combo6, $Combo7, $Combo8, $Combo9, $Combo10,$sDay, $sMonth, $sYear, $sHour, $sMin
; Генерирует список пунктов для Combo1 и 6
For $iD = 1 To 31
;$sDay &= 'Пункт ' & $i & '|'
$sDay &= $iD & '|'
Next
$sDay = 'чис' & '|' & StringTrimRight($sDay, 1)
ConsoleWrite($sDay & @CR)
; Генерирует список пунктов для Combo2 и 7
For $iM = 1 To 12
$sMonth &= $iM & '|'
Next
$sMonth = 'мес' & '|' & StringTrimRight($sMonth, 1)
ConsoleWrite($sMonth & @CR)
; Генерирует список пунктов для Combo3 и 8
For $iY = 2017 To 2050
$sYear &= $iY & '|'
Next
$sYear = 'год' & '|' & StringTrimRight($sYear, 1)
ConsoleWrite($sYear & @CR)
; Генерирует список пунктов для Combo4 и 9
For $iH = 0 To 23
$sHour &= $iH & '|'
Next
$sHour = 'час' & '|' & StringTrimRight($sHour, 1)
ConsoleWrite($sHour & @CR)
; Генерирует список пунктов для Combo5 и 10
For $iM = 00 To 59
$sMin &= $iM & '|'
Next
$sMin = 'мин' & '|' & StringTrimRight($sMin, 1)
ConsoleWrite($sMin & @CR)
; Создаем окно программы
$hGui = GUICreate('Отчеты', 670, 200, -1, -1, -1) ; Создаёт окно по центру
GUICtrlSetFont(-1, 36, -1, -1, 'Impact')
Local $bt1 = GUICtrlCreateButton('Кнопка1', 10, 10, 120, 25)
; создаем подписи к списку
$Label1 = GUICtrlCreateLabel('С', 135, 15, 10, 25)
$Label2 = GUICtrlCreateLabel('По', 380, 15, 25, 25)
; Создаёт "Combo" со стилем точного указания высоты выпадающего списка
$Combo1 = GUICtrlCreateCombo("", 145, 10, 40, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sDay , "чис") ; добавляет другие пункты и устанавливает новый по умолчанию
$Combo2 = GUICtrlCreateCombo("", 190, 10, 40, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sMonth , "мес") ; добавляет другие пункты и устанавливает новый по умолчанию
$Combo3 = GUICtrlCreateCombo("", 235, 10, 50, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sYear , "год") ; добавляет другие пункты и устанавливает новый по умолчанию
$Combo4 = GUICtrlCreateCombo("", 290, 10, 40, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sHour , "час") ; добавляет другие пункты и устанавливает новый по умолчанию
$Combo5 = GUICtrlCreateCombo("", 335, 10, 40, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sMin , "мин") ; добавляет другие пункты и устанавливает новый по умолчанию
$Combo6 = GUICtrlCreateCombo("", 410, 10, 40, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sDay , "чис") ; добавляет другие пункты и устанавливает новый по умолчанию
$Combo7 = GUICtrlCreateCombo("", 460, 10, 40, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sMonth , "мес") ; добавляет другие пункты и устанавливает новый по умолчанию
$Combo8 = GUICtrlCreateCombo("", 505, 10, 50, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sYear , "год") ; добавляет другие пункты и устанавливает новый по умолчанию
$Combo9 = GUICtrlCreateCombo("", 560, 10, 40, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sHour , "час") ; добавляет другие пункты и устанавливает новый по умолчанию
$Combo10 = GUICtrlCreateCombo("", 605, 10, 40, 150, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_NOINTEGRALHEIGHT))
GUICtrlSetData(-1, $sMin , "мин") ; добавляет другие пункты и устанавливает новый по умолчанию
GUISetState() ; показывает созданное окно
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ProcessClose($hGui)
Exit
Case $bt1
_Period()
EndSwitch
WEnd
Func _Period()
If GUICtrlRead($Combo1, 1) = 'чис' AND GUICtrlRead($Combo2, 1) = 'мес' AND GUICtrlRead($Combo3, 1) = 'год' AND GUICtrlRead($Combo4, 1) = 'час' AND GUICtrlRead($Combo5, 1) = 'мин' AND GUICtrlRead($Combo6, 1) = 'чис' AND GUICtrlRead($Combo7, 1) = 'мес' AND GUICtrlRead($Combo8, 1) = 'год' AND GUICtrlRead($Combo9, 1) = 'час' AND GUICtrlRead($Combo10, 1) = 'мин' Then
ConsoleWrite('ни чего не выбрано' & @CR)
ElseIf GUICtrlRead($Combo1, 1) <> 'чис' OR GUICtrlRead($Combo2, 1) <> 'мес' OR GUICtrlRead($Combo3, 1) <> 'год' OR GUICtrlRead($Combo4, 1) <> 'час' OR GUICtrlRead($Combo5, 1) <> 'мин' OR GUICtrlRead($Combo6, 1) <> 'чис' OR GUICtrlRead($Combo7, 1) <> 'мес' OR GUICtrlRead($Combo8, 1) <> 'год' OR GUICtrlRead($Combo9, 1) <> 'час' OR GUICtrlRead($Combo10, 1) <> 'мин' Then
ConsoleWrite('не все выбрано' & GUICtrlRead($Combo1, 1) &'|'& GUICtrlRead($Combo2, 1) &'|'& GUICtrlRead($Combo3, 1) &'|' & GUICtrlRead($Combo4, 1) &'|' & GUICtrlRead($Combo5, 1) &'|' & GUICtrlRead($Combo6, 1) &'|' & GUICtrlRead($Combo7, 1) &'|'& GUICtrlRead($Combo8, 1) &'|'& GUICtrlRead($Combo9, 1) &'|'& GUICtrlRead($Combo10, 1)&@CR)
; Else
ElseIf GUICtrlRead($Combo1, 1) <> 'чис' AND GUICtrlRead($Combo2, 1) <> 'мес' AND GUICtrlRead($Combo3, 1) <> 'год' AND GUICtrlRead($Combo4, 1) <> 'час' AND GUICtrlRead($Combo5, 1) <> 'мин' AND GUICtrlRead($Combo6, 1) <> 'чис' AND GUICtrlRead($Combo7, 1) <> 'мес' AND GUICtrlRead($Combo8, 1) <> 'год' AND GUICtrlRead($Combo9, 1) <> 'час' AND GUICtrlRead($Combo10, 1) <> 'мин' Then
ConsoleWrite('Выбрано все ' & GUICtrlRead($Combo1, 1) &'|'& GUICtrlRead($Combo2, 1) &'|'& GUICtrlRead($Combo3, 1) &'|' & GUICtrlRead($Combo4, 1) &'|' & GUICtrlRead($Combo5, 1) &'|' & GUICtrlRead($Combo6, 1) &'|' & GUICtrlRead($Combo7, 1) &'|'& GUICtrlRead($Combo8, 1) &'|'& GUICtrlRead($Combo9, 1) &'|'& GUICtrlRead($Combo10, 1)&@CR)
EndIf
EndFunc