1

Тема: AutoHotkey: в помощь начинающему изучать GUI

Заметку оставил Rujj.
================================================================

Начну с того, что я долго хотел хоть немного понять, как работает GUI. Однако Хелп мне мало помог - там хорошо расписано, но мало понятно. В итоге я разобрался - оказалось, что если идти от простого к сложному - все получается довольно легко . Итак:

Для первой попытки не стоит самому придумывать окна, их размер и расположение и т.д. - воспользуйтесь утилитой в приложении к AutoHotKey под названием SmartGUI.exe, которую можно скачать на страничке загрузки самой AutoHotKey. Примечание: если язык по умолчанию у вас в системе - не английский, SmartGUI.exe будет поругиваться при запуске, что, вобщем-то, не так уж и страшно.

После запуска открывается окно для редактирования - вверху выбираем элемент. При перемещении курсора на поле редактирования - этот элемент отображается, при первом клике мышкой - элемент размещается, при движении мышки сразу после этого - изменяется размер. Этот порядок, в принципе, неизменен. Если нужно удалить - нажмите правой кнопкой мышки на элементе - в появившемся меню выберите пункт Del....

Разместите таким образом элементы Edit и Button (изображено OK) - по одному элементу. Можно ещё добавить Text и ListBox. Сохраним проект. Кстати, если что-то не получилось - не бойтесь всё закрывать и запускать SmartGUI.exe заново.

Посмотрим код, открыв сохраненный файл для редактирования в "блокноте" или подобном текстовом редакторе.

Gui, Add, Edit, x46 y77 w120 h60 , Edit
Gui, Add, Button, x56 y167 w90 h20 , Button
; Generated using SmartGUI Creator 4.0
Gui, Show, x131 y144 h377 w477, New GUI Window
Return

GuiClose:
ExitApp

Код можно читать, как по книжке:
Gui, Add, Edit, x46 y77 w120 h60 , Edit
первые два слова (Gui, Add,) означают GUI создать, третье - что именно создать? --> поле Edit. Подробнее здесь.

Дальше идут необязательные опции xЗНАЧЕНИЕ yЗНАЧЕНИЕ hЗНАЧЕНИЕ wЗНАЧЕНИЕ. Эти опции означают координаты и размер окна. Подробнее здесь.

Последнее значение в коде - значение Edit. Данное значение - это то, что отобразит это поле. Можно использовать переменную, например%EdditOtUsera%.

Точно так же и со следующей строчкой, Gui, Add, Button, x56 y167 w90 h20 , Button.

Следующее, что важно и нельзя пропустить - Gui, Show, - означает, всего навсего, запуск и отображение перечисленного ранее. (После запятой всё то же самое - координаты и размеры. Они устанавливаются автоматом, так что обращать внимание на них не стоит.) Последний аргумент - отображаемый текст.

Теперь можно перейти к следующему разделу. Метки и переход к ним.

Метки - переменные, после которых стоит двоеточие - служат для обозначения участка кода, к которому можно перейти фактически из любого места программы. Можно сравнить метку с горячей клавишей:

Горячая клавиша:
a::
; код
return

Метка в коде:
a:
; код
return

Следующий участок кода:

GuiClose:
ExitApp

означает, что при попытке закрыть окно GUI произойдет автоматический переход к данной метке.
Список заранее определенных событий - здесь.

Разовьем код. Сделаем так, чтобы при нажатии на кнопку происходило событие - открывалось окно, отображающее, что мы набрали в поле Edit.

Для этого воспользуемся следующей информацией: Опции, задающие элементам управления действия и переменные.. Добавим кое-что к этой строке:

Gui, Add, Edit, x46 y77 w120 h60 vEdd, Edit

и к этой строке:

Gui, Add, Button, x56 y167 w90 h20 gGogo, Button

Читаем код: информацию поля Edit записывать в переменную %Edd%, при нажатии на Button переходить на метку Gogo.

Добавляем в код:

Gogo:
; здесь создана метка, на которую пользователь перейдет при нажатии на кнопку
Gui, Submit, NoHide
Msgbox, %Edd%
return

Полученный результат:

Gui, Add, Edit, x46 y77 w120 h60 vEdd
Gui, Add, Button, x56 y167 w90 h20 gGogo, Данные
; Generated using SmartGUI Creator 4.0
Gui, Show, x131 y144 h377 w477, Моё окно!
Return

Gogo:
Gui, Submit, NoHide
Msgbox, %Edd%
; присваиваем элементу Edit пустое значение, обнуляя его
GuiControl,, Edd, 
return

GuiClose:
ExitApp

P.S. таким образом, создавая переменные, ассоциированные со значением поля, и метки с подпрограммами - работаем и с другими элементами. Теперь можно приступать к дальнейшему изучению...

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.