Что нового

[Элементы GUI] Обновление окна после записи переменной в INI файл

Firestarter

Новичок
Сообщения
54
Репутация
0
Добрый день знатоки.
Столкнулся с проблемой обновления окна после записи переменной в ini файл.
Сам скрипт.

Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#Include <WinAPI.au3>
#include <File.au3>

$key = 1
$INI = "settings.ini"
$GatherFilename = IniRead($INI, 'Path', 'GatherFilename', '')

;================ Создаем окно ============================
Local $ButtonGatherFilename, $msg, $Gui
$Gui = GUICreate("", 375, 205) ;Создаёт окно в центре экрана
$PageControl1 = GUICtrlCreateTab(8, 8, 360, 190)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)

$TabSheet1 = GUICtrlCreateTabItem("Общие")

$TabSheet2 = GUICtrlCreateTabItem("Настройки")
GUICtrlCreateLabel("Файл сбора ресурсов:", 40, 176, 120, 15)
$ButtonGatherFilename = GUICtrlCreateButton("*", 20, 175, 15, 15, $BS_ICON)
GUICtrlSetCursor(-1, 0)
If $GatherFilename <> "" Then
GUICtrlCreateLabel($GatherFilename, 158, 176, 202, 15)
Else
GUICtrlCreateLabel("Создайте и выберите файл!", 158, 176, 202, 15)
GUICtrlSetColor(-1, 0xFF0000)
EndIf

GUISetState()

While $key = 1
Sleep (50)
$msg = GUIGetMsg(1)
Select

Case $msg[0] = $GUI_EVENT_CLOSE
		Exit

Case $msg[0] = $ButtonGatherFilename
$GatherFilename = FileOpenDialog("Выберите файл маршрута сбора", @ScriptDir & "\", "Map files (*.map)", 1)
IniWrite($INI, 'Path', 'GatherFilename', $GatherFilename)
_WinAPI_RedrawWindow($Gui)

EndSelect
WEnd


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

Подскажите пожалуйста как сделать так, чтобы после выбора файла, его имя отображалось в табе "Настройки". Спс
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
не понял смысл построения, чуть переделал
Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <File.au3>

$INI = "settings.ini"
$GatherFilename = IniRead($INI, 'Path', 'GatherFilename', '')

;================ Создаем окно ============================
Local $ButtonGatherFilename, $msg, $Gui
$Gui = GUICreate("", 375, 205) ;Создаёт окно в центре экрана
$PageControl1 = GUICtrlCreateTab(8, 8, 360, 190)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)

$TabSheet1 = GUICtrlCreateTabItem("Общие")

$TabSheet2 = GUICtrlCreateTabItem("Настройки")
$label = GUICtrlCreateLabel("Файл сбора ресурсов:", 40, 176, 360, 15)
$ButtonGatherFilename = GUICtrlCreateButton("*", 20, 175, 15, 15, $BS_ICON)
GUICtrlSetCursor(-1, 0)
If $GatherFilename <> "" Then
	GUICtrlSetData($label, "Файл сбора ресурсов:" & $GatherFilename)
Else
	GUICtrlSetData($label,"Создайте и выберите файл!")
	GUICtrlSetColor($label, 0xFF0000)
EndIf

GUISetState()

While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $ButtonGatherFilename
			$GatherFilename = FileOpenDialog("Выберите файл маршрута сбора", @ScriptDir & "\", "Map files (*.map)", 1)
			IniWrite($INI, 'Path', 'GatherFilename', $GatherFilename)
			GUICtrlSetData($label, "Файл сбора ресурсов:" & $GatherFilename)
			GUICtrlSetColor($label, 0x000000)
			_WinAPI_RedrawWindow($Gui)
	EndSwitch
WEnd
 
Автор
F

Firestarter

Новичок
Сообщения
54
Репутация
0
joiner, спасибо за правку. все замечательно работает.
 
Верх