<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AutoHotkey: в помощь начинающему изучать GUI]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=357</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=357&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AutoHotkey: в помощь начинающему изучать GUI».]]></description>
		<lastBuildDate>Mon, 12 Mar 2007 20:00:23 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[AutoHotkey: в помощь начинающему изучать GUI]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=2159#p2159</link>
			<description><![CDATA[<p>Заметку оставил <strong>Rujj</strong>.<br />================================================================</p><p>Начну с того, что я долго хотел хоть немного понять, как работает <strong>GUI</strong>. Однако Хелп мне мало помог - там хорошо расписано, но мало понятно. В итоге я разобрался - оказалось, что если идти от простого к сложному - все получается довольно легко <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" />. Итак:</p><p>Для первой попытки не стоит самому придумывать окна, их размер и расположение и т.д. - воспользуйтесь утилитой в приложении к <strong>AutoHotKey</strong> под названием <strong>SmartGUI.exe</strong>, которую можно скачать на страничке загрузки самой <a href="http://www.autohotkey.com/download/">AutoHotKey</a>. Примечание: если язык по умолчанию у вас в системе - не английский, SmartGUI.exe будет поругиваться при запуске, что, вобщем-то, не так уж и страшно.</p><p>После запуска открывается окно для редактирования - вверху выбираем элемент. При перемещении курсора на поле редактирования - этот элемент отображается, при первом клике мышкой - элемент размещается, при движении мышки сразу после этого - изменяется размер. Этот порядок, в принципе, неизменен. Если нужно удалить - нажмите правой кнопкой мышки на элементе - в появившемся меню выберите пункт <strong>Del...</strong>.</p><p>Разместите таким образом элементы <strong>Edit</strong> и <strong>Button</strong> (изображено OK) - по одному элементу. Можно ещё добавить <strong>Text</strong> и <strong>ListBox</strong>. Сохраним проект. Кстати, если что-то не получилось - не бойтесь всё закрывать и запускать <strong>SmartGUI.exe</strong> заново.</p><p>Посмотрим код, открыв сохраненный файл для редактирования в &quot;блокноте&quot; или подобном текстовом редакторе.</p><div class="codebox"><pre><code>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</code></pre></div><p>Код можно читать, как по книжке:<br /><strong>Gui, Add, Edit, x46 y77 w120 h60 , Edit</strong><br />первые два слова (<strong>Gui, Add,</strong>) означают <strong>GUI создать</strong>, третье - что именно создать? --&gt; <strong>поле Edit</strong>. <a href="http://www.script-coding.com/AutoHotkey/GUIControls.html#edit">Подробнее здесь</a>.</p><p>Дальше идут необязательные опции <strong>x</strong>ЗНАЧЕНИЕ <strong>y</strong>ЗНАЧЕНИЕ <strong>h</strong>ЗНАЧЕНИЕ <strong>w</strong>ЗНАЧЕНИЕ. Эти опции означают координаты и размер окна. <a href="http://www.script-coding.com/AutoHotkey/GUI.html#controls">Подробнее здесь</a>.</p><p>Последнее значение в коде - значение <strong>Edit</strong>. Данное значение - это то, что отобразит это поле. Можно использовать переменную, например%EdditOtUsera%.</p><p>Точно так же и со следующей строчкой, <strong>Gui, Add, Button, x56 y167 w90 h20 , Button</strong>.</p><p>Следующее, что важно и нельзя пропустить - <strong>Gui, Show,</strong> - означает, всего навсего, запуск и отображение перечисленного ранее. (После запятой всё то же самое - координаты и размеры. Они устанавливаются автоматом, так что обращать внимание на них не стоит.) Последний аргумент - отображаемый текст.</p><p>Теперь можно перейти к следующему разделу. <strong>Метки и переход к ним.</strong></p><p><strong>Метки</strong> - переменные, после которых стоит двоеточие - служат для обозначения участка кода, к которому можно перейти фактически из любого места программы. Можно сравнить метку с горячей клавишей:</p><div class="quotebox"><blockquote><p><strong>Горячая клавиша:</strong><br />a::<br />; код<br />return</p></blockquote></div><div class="quotebox"><blockquote><p><strong>Метка в коде: <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></strong><br />a:<br />; код<br />return</p></blockquote></div><p>Следующий участок кода:</p><div class="quotebox"><blockquote><p>GuiClose:<br />ExitApp</p></blockquote></div><p>означает, что при попытке закрыть окно <strong>GUI</strong> произойдет автоматический переход к данной метке.<br />Список заранее определенных событий - <a href="http://www.script-coding.com/AutoHotkey/GUI.html#rems">здесь</a>.</p><p>Разовьем код. Сделаем так, чтобы при нажатии на кнопку происходило событие - открывалось окно, отображающее, что мы набрали в поле <strong>Edit</strong>.</p><p>Для этого воспользуемся следующей информацией: <a href="http://www.script-coding.com/AutoHotkey/GUI.html#actions">Опции, задающие элементам управления действия и переменные.</a>. Добавим кое-что к этой строке:</p><div class="quotebox"><blockquote><p>Gui, Add, Edit, x46 y77 w120 h60 <strong>vEdd</strong>, Edit</p></blockquote></div><p>и к этой строке:</p><div class="quotebox"><blockquote><p>Gui, Add, Button, x56 y167 w90 h20 <strong>gGogo</strong>, Button</p></blockquote></div><p>Читаем код: информацию поля <strong>Edit</strong> записывать в переменную <strong>%Edd%</strong>, при нажатии на <strong>Button</strong> переходить на метку <strong>Gogo</strong>.</p><p>Добавляем в код:</p><div class="quotebox"><blockquote><p>Gogo:<br />; здесь создана метка, на которую пользователь перейдет при нажатии на кнопку<br />Gui, Submit, NoHide<br />Msgbox, %Edd%<br />return</p></blockquote></div><p>Полученный результат:</p><div class="codebox"><pre><code>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</code></pre></div><p><strong>P.S.</strong> таким образом, создавая переменные, ассоциированные со значением поля, и метки с подпрограммами - работаем и с другими элементами. Теперь можно приступать к дальнейшему изучению...</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Mon, 12 Mar 2007 20:00:23 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=2159#p2159</guid>
		</item>
	</channel>
</rss>
