Что нового

Обновление GUI в Win7

o_nix

Чайник
Сообщения
35
Репутация
1
В процессе создания фейса для утилиты столкнулся с тем что поле ввода input реагирует не только на изменение а даже на подведение к нему указателя мыши. При этом в нём появляется последнее введённое в input значение несмотря на то что должна выводится переменная изменённая другим методом ввода.

Вот код .. пытаясь найти в чём подвох вычистил из него всё что только можно обрезав до минимума.
Запускаем выбираем выходной файл через кнопку выбора в поле ввода появляется выбранный путь подносим (без клика) указатель мыши к полю ввода значение в нём меняется на то что поумолчанию было.

Код:
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)

;Фейс
$Form1 = GUICreate("Генерилка аккаунтов", 386, 267, 362, 361)

;Выбор выходного файла
$Group2 = GUICtrlCreateGroup("Выходной файл", 8, 0, 369, 49)
;Указать вписав имя
$Input1 = GUICtrlCreateInput("out_file.txt", 16, 16, 305, 28)
GUICtrlSetOnEvent(-1, "Input1Change")
;Указать выбрав файл через проводник
$Button1 = GUICtrlCreateButton("...", 328, 16, 41, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Button1Click")
GUICtrlCreateGroup("", -99, -99, 1, 1)

GUISetState(@SW_SHOW)

While 1
Sleep(100)
WEnd

;Выбираем выходной файл
Func Button1Click()
$out_file_get = FileOpenDialog("Укажите файл для вывода данных.", @ScriptDir & "\", "Text (*.txt)", 16 )
$out_file_get = StringReplace($out_file_get, "|", @CRLF)
$Input9 = GUICtrlCreateInput($out_file_get, 16, 16, 305, 28)
GUICtrlSetOnEvent(-1, "Input1Change")
EndFunc

Func Input1Change()
EndFunc


Требуется сохранить возможность ввода переменной обеими способами.

Почему поле меняется при наведении указателя и как сделать чтобы работало как требуется.
 

SyDr

Сидра
Сообщения
651
Репутация
158
Код:
$Input1 = GUICtrlCreateInput("out_file.txt", 16, 16, 305, 28)
;...
Func Button1Click()
;...
$Input9 = GUICtrlCreateInput($out_file_get, 16, 16, 350, 28)
;...
EndFunc

Создавать новое поле не надо. Можно просто изменить данные
Код:
GUICtrlSetData
 
Верх