Что нового

Помогите решить задачку по соххранению имени в интерфейсе окна скрипта

agikon

Знающий
Сообщения
789
Репутация
17
нужно чтобы:
-при нажатии на кнопку "сохранить имя" выскакивало окошко где надо ввести это самое имя, и нажать на OK, и после этого имя сохранялось напротив названия ""ИМЯ:"

Сложно это очень сделать чтобы вот так с диалоговым окном и чтобы это имя заносилось в ini-файл и там сохранялось.

вот тут уже интерфейс есть и ini-файл. но как это всё дело до ума довести как не круил ничего не выходит.
Код:
#include <GUIConstantsEx.au3>

Global $sIniFile = @ScriptDir & '\Config.ini'

; чтение параметра
;$iOption1 = IniRead($sIniFile, 'Set', 'Option1', '1')



GUICreate('My Program', 250, 260)
$Button = GUICtrlCreateButton('сохранить имя', 60, 50, 110, 30)
$Label = GUICtrlCreateLabel("ИМЯ:", 20, 90, 30, 17)

GUISetState()

While 1
    Switch  GUIGetMsg()
        Case $GUI_EVENT_CLOSE
			exit
		Case $Button
			;-- не знаю что сюда писать

	EndSwitch
wend


вот чтото на плдобии этого
http://s3.postimage.org/y3j9ocihi/image.jpg
 

madmasles

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

Global $sIniFile = @ScriptDir & '\Config.ini', $sD = Default

$sName = IniRead($sIniFile, 'Set', 'Name', 'Нет имени')

$hGui = GUICreate('My Program', 250, 260)
$nButton = GUICtrlCreateButton('сохранить имя', 60, 50, 110, 30)
$nLabel = GUICtrlCreateLabel('ИМЯ: ' & $sName, 20, 90, 150, 17)

GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nButton
			$sName = InputBox('My Program', 'Введите имя', $sD, $sD, $sD, $sD, $sD, $sD, $sD, $hGui)
			If Not @error And $sName Then
				GUICtrlSetData($nLabel, 'ИМЯ: ' & $sName)
				IniWrite($sIniFile, 'Set', 'Name', $sName)
			EndIf
	EndSwitch
WEnd
 
Автор
A

agikon

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

madmasles

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

agikon

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

Trans

Знающий
Сообщения
257
Репутация
6
agikon
Вот вам пример, думаю резберётесь:smile:
Код:
;################################# INI Config #########################################

Global $INIDir = @ScriptDir & "\Config.ini"
Global $INISelection = "Configuration"
Global $INILogin = IniRead($INIDir, $INISelection, "Login", "")
Global $INIPass = IniRead($INIDir, $INISelection, "Password", "")

;###################################################################################

#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("My_GUI", 339, 169, 194, 114)
$Login = GUICtrlCreateInput($INILogin, 120, 9, 130, 21, -1, 1)
$Pass = GUICtrlCreateInput($INIPass, 120, 36, 130, 23, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL), 1)
$Send = GUICtrlCreateButton("Send", 260, 9, 74, 51)
GUISetState()


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Send
		;#####################################CREATE INI #####################################
				
				$INIData = "Login=" & GUICtrlRead ($Login) & @LF & "Password=" & GUICtrlRead ($Pass)
				IniWriteSection($INIDir, $INISelection, $INIData)
		;####################################################################################



Данные сохраняются только после того как нажмётся кнопка Send
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
а так?
Код:
#include <GUIConstants.au3>
#include <EditConstants.au3>
Global $INIDir = @ScriptDir & "\Config.ini"
Global $INISelection = "Configuration"
Global $INILogin = IniRead($INIDir, $INISelection, "Login", "")
Global $INIPass = IniRead($INIDir, $INISelection, "Password", "")
$GUI = GUICreate("My_GUI", 339, 169, 194, 114)
$Login = GUICtrlCreateInput($INILogin, 120, 9, 130, 21, -1, 1)
$Pass = GUICtrlCreateInput($INIPass, 120, 36, 130, 23, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL), 1)
$Send = GUICtrlCreateButton("Send", 260, 9, 74, 51)
GUISetState()
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Send
                $INIData = "Login=" & GUICtrlRead ($Login) & @LF & "Password=" & GUICtrlRead ($Pass)
                IniWriteSection($INIDir, $INISelection, $INIData)
	EndSwitch
WEnd
 
Верх