Что нового

Как сохранить данные в .ini файл для последующей их загрузки в GUI?

Diesel

Новичок
Сообщения
35
Репутация
0
Вот примерный скрипт
Код:
Global $fTime = ""

GuiCreate("Sample GUI", 300, 200)

IniRead(@ScriptDir & "\config.ini", "Time", "Buff", $fTime)

GuiCtrlCreateLabel("Время", 50, 15)
$fTime = GuiCtrlCreateInput($fTime, 50, 30, 33, 20)

IniWrite(@ScriptDir & "\config.ini", "Time", "Buff", $fTime)

GUISetState()
Func _Exit()
	Exit
EndFunc
$exit = TrayCreateItem("Выход")
Do
Until GUIGetMsg() = -3 or TrayGetMsg() = $exit

Мне надо данные вводимые GuiCtrlCreateInput сохранялись в ini файл, и легко изменялись прямо в том же окне.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Re: Изменение скрипта в меню GUI

Код:
$fTime = GuiCtrlCreateInput($fTime, 50, 30, 33, 20)

Здесь $fTime это идентификатор элемента

Данные надо читать:
Код:
#include <Date.au3>
;...................
$fTime = GuiCtrlCreateInput(_NowTime(), 50, 30, 33, 20)
$Read=GuiCtrlRead($fTime)
ConsoleWrite($Read& @LF)
;..................

А причем здесь меню?
 
Автор
D

Diesel

Новичок
Сообщения
35
Репутация
0
Re: Изменение скрипта в меню GUI

Мне нужно чтобы скрипт записывал в файл те цифры которые там были до закрытия программы. И при следующем запуске я мог снова изменить их на любые другие цифры. Надо бы ограничение поставить на максимальный ввод 4 символа, и только цифры.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: Изменение скрипта в меню GUI

Код:
#Include <EditConstants.au3>
#Include <WindowsConstants.au3>

Opt("TrayMenuMode", 3)

Global Const $sIni = @ScriptDir & "\config.ini"

$hForm = GUICreate("Sample GUI", 300, 200)
$fTime = IniRead($sIni, "Time", "Buff", "")
GUICtrlCreateLabel("Время", 50, 15)
$Input = GUICtrlCreateInput($fTime, 50, 30, 33, 20)
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
GUISetState()

OnAutoItExitRegister("_Exit")

$Exit = TrayCreateItem("Выход")

Do
Until GUIGetMsg() = -3 or (TrayGetMsg() = $Exit)

Func _Exit()
	IniWrite($sIni, "Time", "Buff", GUICtrlRead($Input))
EndFunc   ;==>_Exit

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)

	Local $Code = BitShift($wParam, 16), $ID = BitAND($wParam, 0xFFFF)

	Switch $hWnd
		Case $hForm
			Switch $ID
				Case $Input
					Switch $Code
						Case $EN_CHANGE
							GUICtrlSetData($ID, StringLeft(StringRegExpReplace(GUICtrlRead($ID), '[^0-9]', ''), 4))
					EndSwitch
			EndSwitch
	EndSwitch
	Return 'GUI_RUNDEFMSG'
EndFunc   ;==>WM_COMMAND



P.S

Неужели так трудно придумать достойное название для своей темы. Если невозможно описать проблему, то это означает, что никакой проблемы и нет вовсе... Причем здесь "Изменение скрипта в меню GUI"? Правильное название для этой темы должно быть, например: "Как сохранить данные в .ini файл для последующей их загрузки в GUI?". И неудивительно, что вы не нашли ответ на этот вопрос (если конечно искали), хотя он уже обсуждался раз двадцать. В следующий раз, я буду удалять такие темы без предупреждения, т.к. форум и так уже зас**ли до такой степени, что найти что-либо стало уже проблематично.

:ninja:
 
Верх