Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Загрузка параметров из ini файла в GUI

Ответить
Настройки темы
[решено] Загрузка параметров из ini файла в GUI

Старожил


Сообщения: 352
Благодарности: 44


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: -TRM-
Дата: 18-09-2017
Приветствую, есть простенький код:
Скрытый текст

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 303, 136, 192, 124)
$CheckViborOdin = GUICtrlCreateCheckbox("Checkbox1", 40, 24, 97, 17)
$CheckViborDva = GUICtrlCreateCheckbox("Checkbox2", 40, 48, 97, 17)
$CheckViborTri = GUICtrlCreateCheckbox("Checkbox3", 40, 72, 97, 17)
$ComboVibora = GUICtrlCreateCombo("", 40, 96, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($ComboVibora, "1|2|3", "2")
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd

INI файл

[Settings]
$CheckViborOdin=1
$CheckViborDva=4
$CheckViborTri=1
$ComboVibora=2

Возможно ли загружать значение переменных ($CheckViborOdin, $CheckViborDva, $CheckViborTri, $ComboVibora) из ini файла, если название значений указаны в ini файле ?

Отправлено: 14:20, 18-09-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


-TRM-, возможно. Символы $ в ini-файле ни к чему. Но какой, простите, в этом смысл для данного кода?!

Что это за оригинальный такой Checkbox:
Цитата -TRM-:
Код: Выделить весь код
$Checkbox3 = GUICtrlCreateCheckbox("1|2|3","3", 40, 72, 97, 17)
»
у Вас вышел?!

Отправлено: 15:19, 18-09-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 352
Благодарности: 44

Профиль | Отправить PM | Цитировать


Iska, прошу прощения, исправил. Просто хотелось создать универсальную процедуру, которая будет выставлять параметры по умолчанию (думаю с помощью GUICtrlSetState()). Сложность в том, что в ini файле идет текст названия реквизита, а вот как мне по этому названию найти реквизит и назначить-незнаю.

Последний раз редактировалось -TRM-, 18-09-2017 в 15:49.


Отправлено: 15:43, 18-09-2017 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


-TRM-, «параметры по умолчанию» — это совсем, совсем другое, нежели переменные $CheckboxXX в Вашем коде. И ещё — скажите, что должно означать:
Цитата -TRM-:
$Checkbox2=4 »
?! Учитывая тот факт, что элемент управления Checkbox может принимать ровно три состояния:
  • установленное;
  • не установленное;
  • неопределённое.
а?

Отправлено: 16:33, 18-09-2017 | #4


Старожил


Сообщения: 352
Благодарности: 44

Профиль | Отправить PM | Цитировать


Цитата Iska:
$CheckboxXX »
Они у меня могут называться по разному и привязываться к $CheckboxXX не нужно (подправил в шапке пример).
Цитата Iska:
что должно означать »
1 - установленное, 4 - не установленное и т.д. сохраняю так
IniWrite(@ScriptDir & "\Vibor.ini", "Settings", "$CheckViborOdin", GUICtrlRead($CheckViborOdin))
а вот как обратно загрузить сохранённые значения-не знаю. Можно было бы смотреть результат из ini файла и в зависимости от результата уже назначать через GUICtrlSetState(), но хотелось бы какую то универсальность.

Последний раз редактировалось -TRM-, 18-09-2017 в 17:39.


Отправлено: 17:30, 18-09-2017 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата -TRM-:
1 - установленное, 4 - не установленное и т.д. сохраняю так
IniWrite(@ScriptDir & "\Vibor.ini", "Settings", "$CheckViborOdin", GUICtrlRead($CheckViborOdin)) »
Хорошо, с этим разобрались, это константы:
Код: Выделить весь код
Global Const $GUI_CHECKED = 1
Global Const $GUI_INDETERMINATE = 2
Global Const $GUI_UNCHECKED = 4
из «GUIConstantsEx.au3».

Цитата -TRM-:
INI файл »
Ещё раз: не нужно там «$», уберите.
Скрытый текст
Код: Выделить весь код
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $Form1

Local $Checkbox1
Local $Checkbox2
Local $Checkbox3

Local $Combo1

Local $nMsg

Local $sIniFile = @ScriptDir & "\Vibor.ini"


$Form1 = GUICreate("Form1", 303, 136, 192, 124)

$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 40, 24, 97, 17, $BS_AUTO3STATE)
GUICtrlSetState(-1, IniRead($sIniFile, "Settings", "Checkbox1", $GUI_CHECKED))

$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 40, 48, 97, 17, $BS_AUTO3STATE)
GUICtrlSetState(-1, IniRead($sIniFile, "Settings", "Checkbox2", $GUI_UNCHECKED))

$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 40, 72, 97, 17, $BS_AUTO3STATE)
GUICtrlSetState(-1, IniRead($sIniFile, "Settings", "Checkbox3", $GUI_INDETERMINATE))

$Combo1 = GUICtrlCreateCombo("", 40, 96, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "1|2|3", IniRead($sIniFile, "Settings", "Combo1", 2))

GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()

	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Exit(0)

Отправлено: 17:58, 18-09-2017 | #6


Старожил


Сообщения: 352
Благодарности: 44

Профиль | Отправить PM | Цитировать


Цитата Iska:
Ещё раз: не нужно там «$», уберите. »
Убрать то уберу, НО я хотел функции передавать какой выбор загрузить:
В функции Vosstanovit не знаю как прописать

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $Form1

Local $Checkbox1
Local $Checkbox2
Local $Checkbox3

Local $Combo1

Local $nMsg

Local $sIniFile = @ScriptDir & "\Vibor.ini"


$Form1 = GUICreate("Form1", 303, 136, 192, 124)

$CheckViborOdin = GUICtrlCreateCheckbox("CheckViborOdin", 40, 24, 97, 17, $BS_AUTO3STATE)
;GUICtrlSetState(-1, IniRead($sIniFile, "Settings", "Checkbox1", $GUI_CHECKED))
Vosstanovit("CheckViborOdin")

$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 40, 48, 97, 17, $BS_AUTO3STATE)
;GUICtrlSetState(-1, IniRead($sIniFile, "Settings", "Checkbox2", $GUI_UNCHECKED))
Vosstanovit("CheckViborDva")

$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 40, 72, 97, 17, $BS_AUTO3STATE)
;GUICtrlSetState(-1, IniRead($sIniFile, "Settings", "Checkbox3", $GUI_INDETERMINATE))
Vosstanovit("CheckViborTri")

$Combo1 = GUICtrlCreateCombo("", 40, 96, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
;GUICtrlSetData(-1, "1|2|3", IniRead($sIniFile, "Settings", "Combo1", 2))

GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()

Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd

Exit (0)

Func Vosstanovit($4toVosstanovit)
$Vibor = 4
If IniRead($sIniFile, "Settings", $4toVosstanovit, 4) = 1 Then
$Vibor = $GUI_CHECKED
ElseIf IniRead($sIniFile, "Settings", $4toVosstanovit, 4) = 2 Then
$Vibor = $GUI_INDETERMINATE
ElseIf IniRead($sIniFile, "Settings", $4toVosstanovit, 4) = 4 Then
$Vibor = $GUI_UNCHECKED
EndIf
GUICtrlSetState($ID, $Vibor) ;ТУТ НЕ ЗНАЮ КАК $ID ПРОПИСАТЬ CheckViborOdin (к примеру)
EndFunc

Отправлено: 18:20, 18-09-2017 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


-TRM-, сначала используйте тэг «code» и лишь затем обрамляйте его спойлером. И используйте банальные отступы при оформлении кода.

Цитата -TRM-:
НО я хотел функции передавать какой выбор загрузить: »
Цитата -TRM-:
ТУТ НЕ ЗНАЮ КАК $ID ПРОПИСАТЬ CheckViborOdin (к примеру) »
Я тоже не знаю, чего Вы хотите добиться. По коду ничего толком понять нельзя. Вы смешиваете в одну кучу имена переменных и строки.

Отправлено: 18:36, 18-09-2017 | #8


Старожил


Сообщения: 352
Благодарности: 44

Профиль | Отправить PM | Цитировать


Цитата Iska:
Вы смешиваете в одну кучу имена переменных и строки. »
Так в этом же и суть ! Мне нужно найти переменную и назначить какой то параметр, зная только название переменной в виде строки. Это вообще реально?

Отправлено: 11:19, 20-09-2017 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Понятней не стало. Какую «переменную»? Где «найти»? Какой «какой-то» параметр? Чему «назначить»? Как связаны эти два понятия?

Опишите алгоритм словами.

Отправлено: 12:06, 20-09-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Загрузка параметров из ini файла в GUI

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - XCOPY с переменными из ini-файла. Gradspb Скриптовые языки администрирования Windows 6 19-05-2016 13:10
Delphi - [решено] Загрузка данных из ini novashdima Программирование и базы данных 6 13-02-2013 08:45
[решено] Считать инфу из разделов INI файла в разные массивы. FlatX007 AutoIt 18 23-12-2010 22:57
CMD/BAT - [решено] Bat с перебором параметров из файла Доктор Ливси Скриптовые языки администрирования Windows 1 30-09-2010 16:12
[решено] синхронизировать время из ini файла Lodoss AutoIt 1 26-03-2009 10:23




 
Переход