Что нового

При создании второго кешбокса на дочернем окне, и тут же один из них не работает

agikon

Знающий
Сообщения
789
Репутация
17
просто напросто на дочернем окне создал второй кешбокс с названием "галочка 2", и всё, сразу кешбокс с названием "галочка" не сохраняет галочку.То есть он сохраняет, но при новом включении скрипта в ini-файле значение "option1" всегда принимает значение "0".
Вот и не могу отследит почемуже так. почему если кешбокс одни на дочернем окне то он нормально работает, а если их два то уже один из них не работает.
Помогите пожалуйста, я вот уже второй день пытаюсь разобратся но никак не получается.


Код:
#include <GuiConstantsEx.au3>

Global $CheckBox, $GUI2, $CheckBox2

Global $sIniFile = @ScriptDir & '\Config.ini'
Global $iOption1 = IniRead($sIniFile, 'Setting', 'Option1', '1')
Global $iOption2 = IniRead($sIniFile, 'Setting', 'Option2', '1')

$GUI = GUICreate("PC10") ; will create a dialog box that when displayed is centered
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$OnTop_CB = GUICtrlCreateCheckbox(" окно всегда наверху", 35, 310, 150, 20)
GUICtrlSetState(-1, $GUI_CHECKED)

GUISetState()
WinSetOnTop($GUI, "", 1)

; Run the GUI until the dialog is closed
While 1
    $nMsg = GUIGetMsg(1)

    Switch $nMsg[0]
        Case $GUI_EVENT_CLOSE
            Switch $nMsg[1]
                Case $GUI
                    Exit
                Case $GUI2
                    GUISetState(@SW_HIDE, $GUI2)
            EndSwitch
        Case $nButton1
            _galochka()
        Case $nButton2
            MsgBox(64, 'Info', 'пример 2', 0, $GUI)
        Case $nButton3
            If Not IsHWnd($GUI2) Then
                NewWindow()
            EndIf

            GUISetState(@SW_SHOW, $GUI2)
        Case $OnTop_CB
            If BitAND(GUICtrlRead($OnTop_CB), $GUI_CHECKED) Then
                WinSetOnTop($GUI, "", 1)
            Else
                WinSetOnTop($GUI, "", 0)
            EndIf
        Case $CheckBox
            IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
        Case $CheckBox2
            IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
    EndSwitch
WEnd

Func NewWindow()
    $GUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $GUI)
    $CheckBox = GUICtrlCreateCheckbox("галочка", 15, 120, 340, 20)
    GUICtrlSetState(-1, $iOption1)

	$CheckBox2 = GUICtrlCreateCheckbox("галочка2", 15, 150, 340, 20)
    GUICtrlSetState(-1, $iOption2)

EndFunc

Func _galochka()
    If BitAND(GUICtrlRead($CheckBox), $GUI_CHECKED) Then
        MsgBox(64, 'Info', 'галочка установлена')
    Else
        MsgBox(64, 'Info', 'галочка не установлена')
    EndIf
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
agikon,
Код:
#include <GuiConstantsEx.au3>

Global $nCheckBox, $hGUI2, $nCheckBox2, $sIniFile = @ScriptDir & '\Config.ini'

$hGUI = GUICreate('PC10')
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$nOnTop_CB = GUICtrlCreateCheckbox(' окно всегда наверху', 35, 310, 150, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
GUISetState()
WinSetOnTop($hGUI, '', 1)

While 1
	$nMsg = GUIGetMsg(1)

	Switch $nMsg[0]
		Case $GUI_EVENT_CLOSE
			Switch $nMsg[1]
				Case $hGUI
					Exit
				Case $hGUI2
					;GUISetState(@SW_HIDE, $hGUI2) это заменил на:
					GUIDelete($hGUI2)
			EndSwitch
		Case $nButton1
			_galochka()
		Case $nButton2
			MsgBox(64, 'Info', 'пример 2', 0, $hGUI)
		Case $nButton3
			If Not IsHWnd($hGUI2) Then
				NewWindow()
			EndIf
			GUISetState(@SW_SHOW, $hGUI2)
		Case $nOnTop_CB
			If BitAND(GUICtrlRead($nOnTop_CB), $GUI_CHECKED) Then
				WinSetOnTop($hGUI, '', 1)
			Else
				WinSetOnTop($hGUI, '', 0)
			EndIf
		Case $nCheckBox
			IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($nCheckBox))
		Case $nCheckBox2
			IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($nCheckBox2))
	EndSwitch
WEnd

Func NewWindow()
	Local $iOption1 = IniRead($sIniFile, 'Setting', 'Option1', '1')
	Local $iOption2 = IniRead($sIniFile, 'Setting', 'Option2', '1')
	$hGUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $hGUI)
	$nCheckBox = GUICtrlCreateCheckbox('галочка', 15, 120, 340, 20)
	GUICtrlSetState(-1, $iOption1)
	$nCheckBox2 = GUICtrlCreateCheckbox('галочка2', 15, 150, 340, 20)
	GUICtrlSetState(-1, $iOption2)
EndFunc   ;==>NewWindow

Func _galochka()
	If BitAND(GUICtrlRead($nOnTop_CB), $GUI_CHECKED) Then
		MsgBox(64, 'Info', 'галочка установлена', 0, $hGUI)
	Else
		MsgBox(64, 'Info', 'галочка не установлена', 0, $hGUI)
	EndIf
EndFunc   ;==>_galochka
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
madmasles
совсем не то!
куда пропала запись в ini-файл от кешбокса "галочка", то есть параметр 'Option2'?
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
А если так:
Код:
#include <GuiConstantsEx.au3>

Global $CheckBox, $GUI2, $CheckBox2

Global $sIniFile = @ScriptDir & '\Config.ini'
Global $iOption1 = IniRead($sIniFile, 'Setting', 'Option1', '1')
Global $iOption2 = IniRead($sIniFile, 'Setting', 'Option2', '1')

$GUI = GUICreate("PC10") ; will create a dialog box that when displayed is centered
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$OnTop_CB = GUICtrlCreateCheckbox(" окно всегда наверху", 35, 310, 150, 20)
GUICtrlSetState(-1, $GUI_CHECKED)

GUISetState()
WinSetOnTop($GUI, "", 1)

; Run the GUI until the dialog is closed
While 1
    $nMsg = GUIGetMsg(1)

    Switch $nMsg[0]
        Case $GUI_EVENT_CLOSE
            Switch $nMsg[1]
                Case $GUI
                    Exit
                Case $GUI2
                    GUISetState(@SW_HIDE, $GUI2)
            EndSwitch
        Case $nButton1
            _galochka()
        Case $nButton2
            MsgBox(64, 'Info', 'пример 2', 0, $GUI)
        Case $nButton3
            If Not IsHWnd($GUI2) Then
                NewWindow()
            EndIf

            GUISetState(@SW_SHOW, $GUI2)
        Case $OnTop_CB
            If BitAND(GUICtrlRead($OnTop_CB), $GUI_CHECKED) Then
                WinSetOnTop($GUI, "", 1)
            Else
                WinSetOnTop($GUI, "", 0)
            EndIf
        Case $CheckBox
            IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
			IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
        Case $CheckBox2
			IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
            IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
    EndSwitch
WEnd

Func NewWindow()
    $GUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $GUI)
    $CheckBox = GUICtrlCreateCheckbox("галочка", 15, 120, 340, 20)
    GUICtrlSetState(-1, $iOption1)

    $CheckBox2 = GUICtrlCreateCheckbox("галочка2", 15, 150, 340, 20)
    GUICtrlSetState(-1, $iOption2)
EndFunc

Func _galochka()
    If BitAND(GUICtrlRead($CheckBox), $GUI_CHECKED) Then
        MsgBox(64, 'Info', 'галочка установлена')
    Else
        MsgBox(64, 'Info', 'галочка не установлена')
    EndIf
EndFunc
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot
то же не то :(
посмотри, вроде и сохраняет, но при следующем заходе в скрипт в ini-файле на нули сбрасывается всё.

[Setting]
Option1=0
Option2=0
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
А так:
Код:
#include <GuiConstantsEx.au3>

Global $CheckBox, $GUI2, $CheckBox2

Global $sIniFile = @ScriptDir & '\Config.ini'
Global $iOption1 = IniRead($sIniFile, 'Setting', 'Option1', '')
Global $iOption2 = IniRead($sIniFile, 'Setting', 'Option2', '')

$GUI = GUICreate("PC10") ; will create a dialog box that when displayed is centered
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$OnTop_CB = GUICtrlCreateCheckbox(" окно всегда наверху", 35, 310, 150, 20)
GUICtrlSetState(-1, $GUI_CHECKED)

GUISetState()
WinSetOnTop($GUI, "", 1)

; Run the GUI until the dialog is closed
While 1
    $nMsg = GUIGetMsg(1)

    Switch $nMsg[0]
        Case $GUI_EVENT_CLOSE
            Switch $nMsg[1]
                Case $GUI
                    Exit
                Case $GUI2
                    GUISetState(@SW_HIDE, $GUI2)
            EndSwitch
        Case $nButton1
            _galochka()
        Case $nButton2
            MsgBox(64, 'Info', 'пример 2', 0, $GUI)
        Case $nButton3
            If Not IsHWnd($GUI2) Then
                NewWindow()
            EndIf

            GUISetState(@SW_SHOW, $GUI2)
        Case $OnTop_CB
            If BitAND(GUICtrlRead($OnTop_CB), $GUI_CHECKED) Then
                WinSetOnTop($GUI, "", 1)
            Else
                WinSetOnTop($GUI, "", 0)
            EndIf
        Case $CheckBox
	        IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
        	IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
        Case $CheckBox2
	        IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
                IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
    EndSwitch
WEnd

Func NewWindow()
    $GUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $GUI)
    $CheckBox = GUICtrlCreateCheckbox("галочка", 15, 120, 340, 20)
    GUICtrlSetState(-1, $iOption1)

    $CheckBox2 = GUICtrlCreateCheckbox("галочка2", 15, 150, 340, 20)
    GUICtrlSetState(-1, $iOption2)

	IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
	IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
EndFunc

Func _galochka()
    If BitAND(GUICtrlRead($CheckBox), $GUI_CHECKED) Then
        MsgBox(4096+64, 'Info', 'галочка установлена')
    Else
        MsgBox(4096+64, 'Info', 'галочка не установлена')
    EndIf
EndFunc
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
agikon
У меня например твой пример работает.
Все сохраняет.

При клике MsgBox то появляется под окном и тормозит скрипт
надо бы все их так:
Код:
MsgBox(4096+64, 'Info', 'галочка установлена')
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
нет, всё равно при новом запуске скрипта настррйки сбрасываются по нолям.

[Setting]
Option1=0
Option2=0

как это вы пишите что у вас всё нормально?
У меня тоже всё нормально до второго запуска скрипта. Поэкспериментируйте, зайдите несколько раз в скрипт, и нажмите на кнопку "ПРИМЕР 1", и вы увидите что будет писать "галочка не установлена", а потом зайдите в ini-файл и посмотрите там одни ноли будут.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
agikon
Добавь вот это в свой вариант:
Код:
Case $GUI_EVENT_CLOSE
            Switch $nMsg[1]
                Case $GUI
                    Exit
                Case $GUI2
                    GUISetState(@SW_HIDE, $GUI2)
            EndSwitch
        Case 0; ******Добавлено
            ContinueLoop ; ******Добавлено
        ;...................................
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
gregaz
я использую примеры которые мне сюда вылаживют и ни один пример не работает.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
agikon [?]
я использую примеры которые мне сюда вылаживют и ни один пример не работает.

Я тебе говорю вставь две строчки
Код:
Case 0; ******Добавлено
ContinueLoop ; ******Добавлено

в свой пример и все будет работать.

Обрати внимание что происходит в консоли сразу после запуска скрипта:
Код:
;...........................
Case $CheckBox
            ConsoleWrite ("GUICtrlRead($CheckBox) = " & GUICtrlRead($CheckBox) & @LF)
            IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
        Case $CheckBox2
             ConsoleWrite ("GUICtrlRead($CheckBox2) = " & GUICtrlRead($CheckBox2) & @LF)
            IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
;...........................................


Код:
;.....................
GUICtrlRead($CheckBox) = 0
GUICtrlRead($CheckBox) = 0
GUICtrlRead($CheckBox) = 0
;....................................
Т. е. при запуске скрипта сразу идет постоянная запись в INI этой строчки
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
gregaz
вставте вы, и полностью весь код сюда выложите. я не пойму куда вставлять, вставте пожалуйста вы в код и выложите весь код.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
agikon,
Так у меня все работает:
Код:
#include <GuiConstantsEx.au3>

Global $nCheckBox, $hGUI2, $nCheckBox2, $sIniFile = @ScriptDir & '\Config.ini'

$iOnTop = IniRead($sIniFile, 'Setting', 'OnTop', '1')
$hGUI = GUICreate('PC10')
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$nOnTop_CB = GUICtrlCreateCheckbox(' окно всегда наверху', 35, 310, 150, 20)
GUICtrlSetState(-1, $iOnTop)
GUISetState()
If $iOnTop == $GUI_CHECKED Then
	WinSetOnTop($hGUI, '', 1)
Else
	WinSetOnTop($hGUI, '', 0)
EndIf
While 1
	$nMsg = GUIGetMsg(1)
	Switch $nMsg[1]
		Case 0
			ContinueLoop
		Case $hGUI
			Switch $nMsg[0]
				Case $GUI_EVENT_CLOSE
					Exit
				Case $nButton1
					_galochka()
				Case $nButton2
					MsgBox(64, 'Info', 'пример 2', 0, $hGUI)
				Case $nButton3
					If Not IsHWnd($hGUI2) Then
						NewWindow()
					EndIf
				Case $nOnTop_CB
					If BitAND(GUICtrlRead($nOnTop_CB), $GUI_CHECKED) Then
						WinSetOnTop($hGUI, '', 1)
					Else
						WinSetOnTop($hGUI, '', 0)
					EndIf
					IniWrite($sIniFile, 'Setting', 'OnTop', GUICtrlRead($nOnTop_CB))
			EndSwitch
		Case $hGUI2
			;If IsHWnd($hGUI2) Then
			Switch $nMsg[0]
				;Case 0
				;	ContinueLoop
				Case $GUI_EVENT_CLOSE
					GUIDelete($hGUI2)
				Case $nCheckBox
					IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($nCheckBox))
				Case $nCheckBox2
					IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($nCheckBox2))
			EndSwitch
			;EndIf
	EndSwitch
WEnd

Func NewWindow()
	Local $iOption1 = IniRead($sIniFile, 'Setting', 'Option1', '1')
	Local $iOption2 = IniRead($sIniFile, 'Setting', 'Option2', '1')
	$hGUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $hGUI)
	$nCheckBox = GUICtrlCreateCheckbox('галочка', 15, 120, 340, 20)
	GUICtrlSetState(-1, $iOption1)
	$nCheckBox2 = GUICtrlCreateCheckbox('галочка2', 15, 150, 340, 20)
	GUICtrlSetState(-1, $iOption2)
	GUISetState()
EndFunc   ;==>NewWindow

Func _galochka()
	If IsHWnd($hGUI2) Then
		If BitAND(GUICtrlRead($nCheckBox), $GUI_CHECKED) Then
			MsgBox(64, 'Info', 'галочка установлена', 0, $hGUI)
		Else
			MsgBox(64, 'Info', 'галочка не установлена', 0, $hGUI)
		EndIf
	Else
		MsgBox(16, 'Error', 'Нет окна "New window"', 0, $hGUI)
	EndIf
EndFunc   ;==>_galochka
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
видео что ничего не работает, чей код не подставляй http://zalil.ru/31761302
может у меня что то с компом?

madmasles
поставил ваш последний код, вроде на ноли не сбивает, но при нажатии на кнопку ""ПРИМЕР 1" тепрь уж постоянно пишет "галочка установлена" даже если она не установлена.

да что ж такое прямо как заколдовано.

кнопка "Пример 1" должна соответствовать состоянии галочки в чекбоксе "галочка", то есть в переменной $nCheckBox

галочки теперь то запоминаются, но вот кнопка "ПРИМЕР 1" всё равно не видит чтоит там галочк в "галочка" или не стоит.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
agikon [?]
кнопка "Пример 1" должна соответствовать состоянии галочки в чекбоксе "галочка", то есть в переменной $nCheckBox
Я об этом должен был догадаться? Поправил код.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Вот, у меня работает:
Код:
#include <GuiConstantsEx.au3>

Global $CheckBox, $GUI2, $CheckBox2

Global $sIniFile = @ScriptDir & '\Config.ini'
Global $iOption1 = IniRead($sIniFile, 'Setting', 'Option1', '1')
Global $iOption2 = IniRead($sIniFile, 'Setting', 'Option2', '1')

$GUI = GUICreate("PC10")
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$OnTop_CB = GUICtrlCreateCheckbox(" окно всегда наверху", 35, 310, 150, 20)
GUICtrlSetState(-1, $GUI_CHECKED)

GUISetState()
WinSetOnTop($GUI, "", 1)

While 1
    $nMsg = GUIGetMsg(1)

    Switch $nMsg[0]
        Case $GUI_EVENT_CLOSE
            Switch $nMsg[1]
                Case $GUI
                    Exit
                Case $GUI2
                    GUISetState(@SW_HIDE, $GUI2)
            EndSwitch
        Case $nButton1
            _galochka()
        Case $nButton2
            MsgBox(64, 'Info', 'пример 2', 0, $GUI)
        Case $nButton3
            If Not IsHWnd($GUI2) Then
                NewWindow()
            EndIf

            GUISetState(@SW_SHOW, $GUI2)
        Case $OnTop_CB
            If BitAND(GUICtrlRead($OnTop_CB), $GUI_CHECKED) Then
                WinSetOnTop($GUI, "", 1)
            Else
                WinSetOnTop($GUI, "", 0)
            EndIf
        Case $CheckBox
            IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
        Case $CheckBox2
            IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
    EndSwitch
WEnd

Func NewWindow()
    $GUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $GUI)
    $CheckBox = GUICtrlCreateCheckbox("галочка", 15, 120, 340, 20)
    GUICtrlSetState(-1, $iOption1)

    $CheckBox2 = GUICtrlCreateCheckbox("галочка2", 15, 150, 340, 20)
    GUICtrlSetState(-1, $iOption2)

EndFunc

Func _galochka()
    If $iOption1 = 1 Then ;Изменено
        MsgBox(64, 'Info', 'галочка установлена')
    Else
        MsgBox(64, 'Info', 'галочка не установлена')
    EndIf
EndFunc
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
agikon [?]
вставте вы, и полностью весь код сюда выложите. я не пойму куда вставлять, вставте пожалуйста вы в код и выложите весь код.
Вот это твой код с...:
Код:
#include <GuiConstantsEx.au3>

Global $CheckBox, $GUI2, $CheckBox2

Global $sIniFile = @ScriptDir & '\Config.ini'
Global $iOption1 = IniRead($sIniFile, 'Setting', 'Option1', '1')
Global $iOption2 = IniRead($sIniFile, 'Setting', 'Option2', '1')

$GUI = GUICreate("PC10") ; will create a dialog box that when displayed is centered
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$OnTop_CB = GUICtrlCreateCheckbox(" окно всегда наверху", 35, 310, 150, 20)
GUICtrlSetState(-1, $GUI_CHECKED)

GUISetState()
WinSetOnTop($GUI, "", 1)

; Run the GUI until the dialog is closed
While 1
    $nMsg = GUIGetMsg(1)

    Switch $nMsg[0]
        Case $GUI_EVENT_CLOSE
            Switch $nMsg[1]
                Case $GUI
                    Exit
                Case $GUI2
                    GUISetState(@SW_HIDE, $GUI2)
            EndSwitch
        Case 0; Добавлено
            ContinueLoop; Добавлено
        Case $nButton1
            _galochka()
        Case $nButton2
            MsgBox(64, 'Info', 'пример 2', 0, $GUI)
        Case $nButton3
            If Not IsHWnd($GUI2) Then
                NewWindow()
            EndIf

            GUISetState(@SW_SHOW, $GUI2)
        Case $OnTop_CB
            If BitAND(GUICtrlRead($OnTop_CB), $GUI_CHECKED) Then
                WinSetOnTop($GUI, "", 1)
            Else
                WinSetOnTop($GUI, "", 0)
            EndIf
        Case $CheckBox
            IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
        Case $CheckBox2
            IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
    EndSwitch
WEnd

Func NewWindow()
    $GUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $GUI)
    $CheckBox = GUICtrlCreateCheckbox("галочка", 15, 120, 340, 20)
    GUICtrlSetState(-1, $iOption1)

    $CheckBox2 = GUICtrlCreateCheckbox("галочка2", 15, 150, 340, 20)
    GUICtrlSetState(-1, $iOption2)

EndFunc

Func _galochka()
    If BitAND(GUICtrlRead($CheckBox), $GUI_CHECKED) Then
        MsgBox(64, 'Info', 'галочка установлена')
    Else
        MsgBox(64, 'Info', 'галочка не установлена')
    EndIf
EndFunc
Т.е. дествительно лучше разделить обработку сообщений окон, как сделал madmasles или не допускать 0 как у меня
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot
не работает, не сохраняет глочки, ноли...


madmasles
вообще теперь не работает
вот видео как вставляю ваш код, компилирую и запускаю http://zalil.ru/31761424


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

gregaz
http://zalil.ru/31761464

неужели вы не видите чт оно ничего не пашет, а вы говорите пашет. ну на моём видео вы же видите что не работает.


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

Zaramot
http://zalil.ru/31761510

опять те же ноли...
 
Верх