Что нового

[Элементы GUI] Как поставить несколько Input под один Checkbox

gezan1

Новичок
Сообщения
47
Репутация
0
Всем Доброго дня, и прохлады глоток.
Застрял я, на своем новом шедевре
Код:
#include <WindowsConstants.au3>
#include <Array.au3>
#include <Excel.au3>
#include <GuiComboBox.au3>
#include <GuiButton.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>

#Region ### START Koda GUI section ### Form=
Local $hCombo

$Form1 = GUICreate("Что нибудь да получится",  1193, 675, 102, 4)
;GUISetBkColor(0xA3B2FE)
$tab = GUICtrlCreateTab(10, 80, 680, 580)
GUICtrlCreateTabItem("Соки")
GUISetBkColor(0xCAD7FF); изменяет цвет фона
$Label3 = GUICtrlCreateLabel("Асортимент", 80, 140, 43, 21)
$hCombo = GUICtrlCreateCombo("", 110, 142, 46, 296)
$hCombo3 = GUICtrlCreateCombo("ОРЕХ", 160,140, 186, 296)
$Label4 = GUICtrlCreateLabel("Проб",350,142, 43, 21)
$hCombo2 = GUICtrlCreateCombo("", 380, 140, 36, 596)
$hCombo1 = GUICtrlCreateCombo("Ананас", 420, 140, 180, 296)
$Label5 = GUICtrlCreateLabel("Магазин", 50, 120, 103, 21)
$Label6 = GUICtrlCreateLabel("Склад", 204, 120, 103, 21)
$Input3 = GUICtrlCreateInput("2500", 122, 115, 63, 21)
$Input4 = GUICtrlCreateInput("1800", 282, 115, 63, 21)
_GUICtrlComboBox_AddString($hCombo,'0.7')
_GUICtrlComboBox_AddString($hCombo, "0.5 ")
_GUICtrlComboBox_AddString($hCombo2, "0,3 ")

GUICtrlSetState(1, $GUI_DISABLE)
$hCheckbox1 = GUICtrlCreateCheckbox("Внутр", 20, 172, 61, 17)
$Label31 = GUICtrlCreateLabel("Асортимент", 80, 172, 43, 21)
$hCombo1 = GUICtrlCreateCombo("", 110, 170, 46, 296)
$hCombo31 = GUICtrlCreateCombo("ОРЕХ", 160,170, 186, 296)
$Label41 = GUICtrlCreateLabel("Проб",350,172, 43, 21)
$hCombo21 = GUICtrlCreateCombo("", 380, 170, 36, 596)
$hCombo22 = GUICtrlCreateCombo("Ананас", 420, 170, 180, 296)
_GUICtrlComboBox_AddString($hCombo1,'0.7')
_GUICtrlComboBox_AddString($hCombo1, "0.5 ")
_GUICtrlComboBox_AddString($hCombo21, "0,3 ")
$Label222 = GUICtrlCreateLabel("Асортимент", 80, 202, 43, 21)
$hCombo2 = GUICtrlCreateCombo("1", 110, 200, 46, 296)
$hCombo222 = GUICtrlCreateCombo("ОРЕХ", 160,200, 186, 296)           ;
$Label42 = GUICtrlCreateLabel("Проб",350,202, 43, 21)                ;
$hCombo23 = GUICtrlCreateCombo("2", 380, 200, 36, 596)               ;
$hCombo24 = GUICtrlCreateCombo("Ананас", 420, 200, 180, 296)         ;
_GUICtrlComboBox_AddString($hCombo2,'0.7')                           ;
_GUICtrlComboBox_AddString($hCombo2, "0.5 ")                         ;
_GUICtrlComboBox_AddString($hCombo22, "0,3 ")                        ;
GUICtrlSetState(-1, $GUI_DISABLE);;;;;;чекбокс                        ;
$hCheckbox2 = GUICtrlCreateCheckbox("Дополнительно", 20, 202, 61, 17);
$hCombo9 = GUICtrlCreateCombo("40", 150, 260, 60, 296)
GUICtrlSetState(-1, $GUI_DISABLE)
$hCheckbox9 = GUICtrlCreateCheckbox("Приход", 20, 262, 121, 17)
$hCombo10 = GUICtrlCreateCombo("40", 355, 260, 60, 296)
GUICtrlSetState(-1, $GUI_DISABLE)
$hCheckbox10 = GUICtrlCreateCheckbox("Приход слева", 230, 262, 121, 17)

$Label32 = GUICtrlCreateLabel("КОЛОНКА", 70, 442, 73, 21)
$Input32 = GUICtrlCreateInput("500", 152, 440, 33, 21)
$Label33 = GUICtrlCreateLabel("ОТСТУП СВЕРХУ", 310, 442, 173, 21)
$Input33 = GUICtrlCreateInput("400", 430, 440, 33, 21)
$Label34 = GUICtrlCreateLabel("КОЛ-ВО ПОЛОК", 480, 442, 153, 21)
$Input34 = GUICtrlCreateInput("5", 590, 440, 33, 21)
$Label35 = GUICtrlCreateLabel("КОРЗИНА", 200, 442, 73, 21)
$Input35 = GUICtrlCreateInput("440", 270, 440, 33, 21)
$Label322 = GUICtrlCreateLabel("ВЫСОТА ЯЩИКОВ", 70, 472, 173, 21)
$Input322 = GUICtrlCreateInput("200", 192, 470, 33, 21)
$Label333 = GUICtrlCreateLabel("КОЛ-ВО ЯЩИКОВ", 240, 472, 173, 21)
$Input333 = GUICtrlCreateInput("2", 360, 470, 23, 21)
$Label344 = GUICtrlCreateLabel("ЦВЕТ ЯЩИКОВ", 420, 472, 173, 21)
$hCombo344 = GUICtrlCreateCombo("ОРЕХ", 510,472, 156, 296)
$Label355 = GUICtrlCreateLabel("ОСТАЛЬНЫЕ ПОЛКИ",20, 502, 173, 21)
$Input355 = GUICtrlCreateInput("2", 162, 500, 23, 21)
$Label36 = GUICtrlCreateLabel("УЗКИЕ ПОЛКИ", 190, 502, 173, 21)
$Input36 = GUICtrlCreateInput("300", 290, 500, 33, 21)
$Input366 = GUICtrlCreateInput("1", 330, 500, 23, 21)
$Input377 = GUICtrlCreateInput("2", 540, 500, 23, 21)
$Label38 = GUICtrlCreateLabel("ДОПОЛНИТЕЛЬНО:      ПОЛКИ СПРАВА",20, 532, 293, 21)
$Input38 = GUICtrlCreateInput("300", 290, 530, 33, 21)
$Input388 = GUICtrlCreateInput("2", 332, 530, 23, 21)
$Label39 = GUICtrlCreateLabel("КОЛОНКА 2я", 370, 532, 173, 21)
$Input39 = GUICtrlCreateInput("500", 460, 530, 33, 21)
$Label40 = GUICtrlCreateLabel("ЯЩИКИ", 500, 532, 173, 21)
$Input40 = GUICtrlCreateInput("2", 560, 530, 23, 21)
$Button1 = GUICtrlCreateButton("ПРОСМОТР", 764, 580, 105, 25)
GUICtrlCreateTabItem("Воды")

GUISetState(@SW_SHOW)


#EndRegion ### END Koda GUI section ###


Global $sText,$a, $b
While 2
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
			 Case $hCheckbox1
            _ff($Label31)
			 _ff($hCombo1)
			  _ff($hCombo31)
			   _ff($Label41)
			    _ff($hCombo21)
				 _ff($hCombo22)
				  Case $hCheckbox2
            _ff($Label222)
			 _ff($hCombo2)
			  _ff($hCombo222)
			   _ff($Label42)
			    _ff($hCombo23)
				 _ff($hCombo24)
				  Case $hCheckbox9
            _ff($hCombo9)
			 Case $hCheckbox10
            _ff($hCombo10)

Case $Button1

Local $oAppl = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oAppl)
If @error Then
	MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Example", "Error creating the new workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
	_Excel_Close($oAppl)
	Exit
EndIf
$oWorkbook.Columns('A:F' ).EntireColumn.Select ;колонки A-F
$oWorkbook.Selection.EntireColumn.AutoFit
$oWorkbook.Range('A1' ).Select
;_ExcelBookClose($oExcel)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, GUICtrlRead($Input3),'A1' )
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet ,GUICtrlRead($Input3)*(GUICtrlRead($Input4)-10),'B1' )
EndSwitch
WEnd
;If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Example 1", "Error writing to worksheet." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Example 1", "String successfully written.")
Func _ff($i_CtrlID)
    Select
        Case  BitAND(GUICtrlGetState($i_CtrlID), $GUI_ENABLE) = $GUI_ENABLE
            GUICtrlSetState($i_CtrlID, $GUI_DISABLE)
        Case  BitAND(GUICtrlGetState($i_CtrlID), $GUI_DISABLE) = $GUI_DISABLE
            GUICtrlSetState($i_CtrlID, $GUI_ENABLE)
    EndSelect
EndFunc

Как поставить Несколько импутов или комбо под одним чекбоксом?
При нажатии чекбокса " ВНУТР" нужно , чтобы вся строка разблокировалась, а не наоборот.
Подскажите, что неправильно делаю.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Re: [Элементы GUI] Несколько импутов под одним чекбоксом

Тебе нужно при создании контролов задать их начальное значение как $GUI_DISABLE
Например вот так
Код:
$hCheckbox1 = GUICtrlCreateCheckbox("Внутр", 20, 172, 61, 17)
$Label31 = GUICtrlCreateLabel("Асортимент", 80, 172, 43, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$hCombo1 = GUICtrlCreateCombo("", 110, 170, 46, 296)
GUICtrlSetState(-1, $GUI_DISABLE)
$hCombo31 = GUICtrlCreateCombo("ОРЕХ", 160,170, 186, 296)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label41 = GUICtrlCreateLabel("Проб",350,172, 43, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$hCombo21 = GUICtrlCreateCombo("", 380, 170, 36, 596)
GUICtrlSetState(-1, $GUI_DISABLE)
$hCombo22 = GUICtrlCreateCombo("Ананас", 420, 170, 180, 296)
GUICtrlSetState(-1, $GUI_DISABLE)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Элементы GUI] Несколько импутов под одним чекбоксом

gezan1 [?]
импутов или комбо под одним чекбоксом
Предупреждение За нарушение общих правил (пункт В.8):
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.






Добавлено:
Сообщение автоматически объединено:

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Элементы GUI] Несколько импутов под одним чекбоксом" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 
Верх