Что нового

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

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
agikon [?]
вообще теперь не работает
вот видео как вставляю ваш код,
У меня работает мой код и из SciTE, и скомпилированный, а Ваш er.avi показывает кусок и вылетает (у меня).
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
agikon,
По вашему видео, у меня всё работает. Только нули записывает, так ?
А если поставить запись INI в цикле ?
 
Автор
A

agikon

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


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

Zaramot
смотрите, поставил галочки и вышел, потом захожу нажимаю на кгопку "пример 1" и пишет "галочка не установлена", смотрю в ini-файл и там опять стоит ноль.
http://zalil.ru/31761607
ну где работает?
видите ноль в Option1 появился, чего он там появился? там должно быть или 1 или 4. но не ноль.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
agikon [?]
ёпт неужели вы не видите чт оно ничего не пашет

я вижу что ты не читаещь сообщения.

Сделай кроме того все MsgBox(4096+64...... поверх всех окон.
У тебя же под окном сидит не один MsgBox при установке галочки.
Закроешь один под ним другой.
Ты информацию ведь о работоспособности берешь из MsgBox, а он не тот

а я проверяю сам ИНИ-файл.

Поставь в ф-ию ConsoleWrite

Код:
Func _galochka()
   ConsoleWrite ("GUICtrlRead($CheckBox )= " & GUICtrlRead($CheckBox) & @LF)
    
    If BitAND(GUICtrlRead($CheckBox), $GUI_CHECKED) Then
        MsgBox(64, 'Info', 'галочка установлена')
    Else
        MsgBox(64, 'Info', 'галочка не установлена')
    EndIf
EndFunc


и увидишь ,что все работает.
И нечего компилировать сейчас.
В SciTE проверь. В консоли увидишь все.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
agikon
У меня тоже всё работает :whistle:.

А зачем ты компилируешь, проверь сперва так, прямо из редактора (F5).
 
Автор
A

agikon

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

да какая разница компилирую или нет, ну от смотрте не компилирую а нажимаю F5
http://zalil.ru/31761810

ну видите, галочки не стоят а пишет "галочка установлена".....
 

gregaz

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

Не надо истерик.

[?]
видите ноль в Option1 появился, чего он там появился? там должно быть или 1 или 4. но не ноль.

Ноль появляется,так как читается пока еще не созданный, но объявленный глобальным
Checkbox.

Поставь создание дочернего окна в голове скрипта
а при обработке только открывай-закрывай его

Вот так :
Код:
#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)
NewWindow();     **** Добавлено

; 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(4096+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)
     GUISetState(@SW_HIDE, $GUI2)
EndFunc

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



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

agikon [?]
ну видите, галочки не стоят а пишет "галочка установлена".....

Ты закрой этот первый MsgBox и "рупь за сто" сразу сам появится правильный, последний.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
gregaz
наконец-то заработало! ваш скрипт отлично заработал, всё сохраняет, всё правильно показывает.

Но остался один вопрос, н емогу сделать так чтобы при запуску скрипта он сворачивался в панель к часам, и галочка сохранялась в ini-файл.

в скрипт добавил только два элемента
1)само меню
Код:
;--------------------------------------------- agikon
Opt("TrayMenuMode",3)
$show = TrayCreateItem("Развернуть")
;-----------------------------------------


2) и сам кешбокс
Код:
;--------------------------------------------- agikon
$hide = GUICtrlCreateCheckbox("При запуске сворачивать", 35, 330, 150, 20)
;-----------------------------------------


а дальше у меня не выходит ничего.

вот весь код, пожалуйста если ещё я вас не задолбал то помогите пожалуйста разобратся с этим вопросом и на этом тему можно считать полностью решенной. потому что я как не делаю а постоянно дочернее окно не сворачивается...

Код:
#include <GuiConstantsEx.au3>

;--------------------------------------------- agikon
Opt("TrayMenuMode",3)
$show = TrayCreateItem("Развернуть")
;-----------------------------------------

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)


;--------------------------------------------- agikon
$hide = GUICtrlCreateCheckbox("При запуске сворачивать", 35, 330, 150, 20)
;-----------------------------------------



GUISetState()
WinSetOnTop($GUI, "", 1)
NewWindow();     **** Добавлено

; 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(4096+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)
     GUISetState(@SW_HIDE, $GUI2)
EndFunc

Func _galochka()
   ConsoleWrite ("GUICtrlRead($CheckBox = " & GUICtrlRead($CheckBox) & @LF)

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

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
agikon, gregaz
избегайте завуалированных форм, эвфемизмы куда более неприятны слуху, нежели то, что под ними скрыто. проявляйте уважение к другим участником форума.
 

Zaramot

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

;--------------------------------------------- agikon
Opt("TrayMenuMode",3)
$show = TrayCreateItem("Развернуть")
;-----------------------------------------

Global $CheckBox, $GUI2, $CheckBox2

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

$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)


;--------------------------------------------- agikon
$hide = GUICtrlCreateCheckbox("При запуске сворачивать", 35, 330, 150, 20)
If $iOption3 = 1 Then
	GUICtrlSetState(-1, $GUI_CHECKED)
Else
	GUICtrlSetState(-1, $GUI_UNCHECKED)
EndIf
;-----------------------------------------

If $iOption3 = 1 Then
	GUISetState(@SW_HIDE, $GUI)
Else
	GUISetState(@SW_SHOW, $GUI)
EndIf
WinSetOnTop($GUI, "", 1)
NewWindow();     **** Добавлено

; Run the GUI until the dialog is closed
While 1
	$tMsg = TrayGetMsg()
	Switch $tMsg
		Case $show
			GUISetState(@SW_SHOW, $GUI)
	EndSwitch

    $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(4096+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))
		Case $hide
			IniWrite($sIniFile, 'Setting', 'Option3', GUICtrlRead($hide))
    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)
     GUISetState(@SW_HIDE, $GUI2)
EndFunc

Func _galochka()
   ConsoleWrite ("GUICtrlRead($CheckBox = " & GUICtrlRead($CheckBox) & @LF)

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

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot, спасибо, всё ok.
Ребята, спасибо вам, извините что сколько голову проморочил, очень сложно было конечно... спасибо что помогаете.
спасибо, тема решена!
 
Верх