Что нового

[Окна, Диалоги] Создать окно с настройками.

Math

Новичок
Сообщения
85
Репутация
1
Требуется создать окно с настройками.
Т.е. в основном окне программы будет кнопка:
Код:
$knopka=GUICtrlCreateButton ("Настроить!",35,65,160)

Как сделать так, что бы она открывала новое окно?

Далее.
1. В этом окне нужно создать десяток полей с названиями.
2. При запуске этого окна с настройками, информация выводимая в каждое поле должна читаться из ini-файла.
3. Данные в каждом поле можно поменять, и при нажатии кнопки ОК или применить, информация из каждого поля должна сохранятся в ini-файле.
4. В окне настроек должно быть 3 кнопки:
ОК - сохранить изменения и закрыть окно.
Применить - сохранить изменения.
Отмена - закрыть окно.

Прошу показать на примере, как сделать такое окно с такими полями. Спасибо.
 

axlwor

Скриптер
Сообщения
657
Репутация
147
http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm

и дальше по непонятным командам успевай только читать.
или читай этот форум в разделе гуев.

ps. тут через раз спрашивают ie и gui
 

agikon

Знающий
Сообщения
789
Репутация
16
Как сделать так, что бы она открывала новое окно?

вот каркас, сюда добавляй что там тебе надо.
Код:
#include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>


$GUI  = GUICreate('okno1', 400, 300)
$knopka=GUICtrlCreateButton ("Настроить!",35,65,160)
GUISetState()

While 1
	$nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
		Case $knopka
			_okno2()
	EndSwitch
wend


Func _okno2()
    $GUI2 = GUICreate('okno2', 400, 250, -1, -1, -1, -1, $GUI)
    GUISetState()

    Do
    until GUIGetMsg() = -3

    GUIDelete($GUI2)
EndFunc


а ещё посмотри мои темы, в них найдёшь много ответов от мастеров этого форума !!!!!
в моих темах есть и про ini-файлы, и про дочерние окна и много чего.
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
658
Math,
Код:
#include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>

Global $INI = @ScriptDir & '\Settings.ini'
Global $Input1 = -1, $Input2 = -1, $Input3 = -1, $Input4 = -1
Global $Button1 = -1, $Button2 = -1, $Button3 = -1
Global $Input1Text = '', $Input2Text = '', $Input3Text = '', $Input4Text = ''

If FileExists($INI) Then
	$Input1Text = IniRead($INI, 'Options', 'Input1', '')
	$Input2Text = IniRead($INI, 'Options', 'Input2', '')
	$Input3Text = IniRead($INI, 'Options', 'Input3', '')
	$Input4Text = IniRead($INI, 'Options', 'Input4', '')
EndIf

$hMain_GUI = GUICreate("Main GUI", 250, 250)
$nChild_Button = GUICtrlCreateButton("Настройки", 50, 50, 100, 20)
GUISetState(@SW_SHOW, $hMain_GUI)

$hChild_GUI = _ChildGUI_Create($hMain_GUI)

While 1
    $aMsg = GUIGetMsg(1)
    Switch $aMsg[0]
        Case $GUI_EVENT_CLOSE
            If $aMsg[1] = $hMain_GUI Then Exit
            If $aMsg[1] = $hChild_GUI Then
                GUISetState(@SW_HIDE, $hChild_GUI)
            EndIf
        Case $nChild_Button
            GUISetState(@SW_SHOW, $hChild_GUI)
            If Not WinActive($hChild_GUI) Then WinActivate($hChild_GUI)
        Case $Button1
            IniWrite($INI, 'Options', 'Input1', GUICtrlRead($Input1))
			IniWrite($INI, 'Options', 'Input2', GUICtrlRead($Input2))
			IniWrite($INI, 'Options', 'Input3', GUICtrlRead($Input3))
			IniWrite($INI, 'Options', 'Input4', GUICtrlRead($Input4))
			GUISetState(@SW_HIDE, $hChild_GUI)
		Case $Button2
			IniWrite($INI, 'Options', 'Input1', GUICtrlRead($Input1))
			IniWrite($INI, 'Options', 'Input2', GUICtrlRead($Input2))
			IniWrite($INI, 'Options', 'Input3', GUICtrlRead($Input3))
			IniWrite($INI, 'Options', 'Input4', GUICtrlRead($Input4))
		Case $Button3
			GUISetState(@SW_HIDE, $hChild_GUI)
    EndSwitch
WEnd

Func _ChildGUI_Create($hParent)
    Local $hChild_GUI
    $hChild_GUI = GUICreate("Child GUI", 450, 270, -1, -1, -1, -1, $hParent)
	$Input1 = GUICtrlCreateInput($Input1Text, 24, 24, 393, 21)
	$Input2 = GUICtrlCreateInput($Input2Text, 24, 72, 393, 21)
	$Input3 = GUICtrlCreateInput($Input3Text, 24, 120, 393, 21)
	$Input4 = GUICtrlCreateInput($Input4Text, 24, 168, 393, 21)
	$Button1 = GUICtrlCreateButton("ОК", 32, 232, 75, 25)
	$Button2 = GUICtrlCreateButton("Применить", 184, 232, 75, 25)
	$Button3 = GUICtrlCreateButton("Отмена", 328, 232, 75, 25)

    Return $hChild_GUI
EndFunc
 
Автор
M

Math

Новичок
Сообщения
85
Репутация
1
Zaramot, это то, что мне нужно.
 
Верх