ahk tooltip примеры кода
Создаёт окно, которое всегда будет поверх всех окон.
Параметры
Text | Если поле пустое или пропущено, существующая подсказка (если есть) будет скрыта. В противном случае этот параметр является текстом, отображаемым во всплывающей подсказке. Чтобы создать многострочную подсказку, используйте символ перевода строки (`n) между каждой строкой, например, Line1`nLine2. |
Если текст длинный, его можно разбить на несколько более коротких строк с помощью продолжения, что может улучшить читаемость и удобство обслуживания.
Примечание
Подсказка обычно выглядит так:
Если координаты X и Y приведут к тому, что всплывающая подсказка исчезнет с экрана, она будет полностью видна.
Подсказка отображается, пока не произойдет одно из следующих действий:
— Сценарий заканчивается.
— Команда ToolTip выполняется снова с пустым параметром Text.
— Пользователь нажимает на всплывающую подсказку (это может зависеть от версии операционной системы).
Окно GUI можно сделать владельцем всплывающей подсказки с помощью Gui + OwnDialogs. Такая подсказка автоматически уничтожается, когда уничтожается ее владелец.
AHK: ToolTip/TrayTip с выбором цвета и шрифта
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 1
1 Тема от teadrinker 2016-12-20 02:14:57 (изменено: teadrinker, 2017-04-27 01:21:55)
Тема: AHK: ToolTip/TrayTip с выбором цвета и шрифта
Class ToolTip
Представляю класс ToolTip, который можно использовать для создания ToolTip’ов и TrayTip’ов с возможностью выбора шрифта (и его размера и стиля), а также цвета фона и текста. Подобных разработок существует множество, моя более функциональна, чем, например, эта, и более компактна, чем эта.
Сам класс:
Примеры использования
Для работы примеров необходимо сохранить класс ToolTip в файл ToolTip.ahk и положить его в папку скрипта, либо удалить из кода строку #Include %A_ScriptDir%\ToolTip.ahk и дописать класс непосредственно в код примера.
Ещё пример:
Более сложный пример:
Вопросы можно задать в этой теме.
Пост на GitHub: описание, примеры и changelog.
ToolTip
Creates an always-on-top window anywhere on the screen.
Parameters
If blank or omitted, the existing tooltip (if any) will be hidden. Otherwise, this parameter is the text to display in the tooltip. To create a multi-line tooltip, use the linefeed character (`n) in between each line, e.g. Line1`nLine2.
If Text is long, it can be broken up into several shorter lines by means of a continuation section, which might improve readability and maintainability.
The X and Y position of the tooltip relative to the active window (use CoordMode «ToolTip» to change to screen coordinates). If the coordinates are omitted, the tooltip will be shown near the mouse cursor.
Omit this parameter if you don’t need multiple tooltips to appear simultaneously. Otherwise, this is a number between 1 and 20 to indicate which tooltip window to operate upon. If unspecified, that number is 1 (the first).
Remarks
A tooltip usually looks like this:
If the X & Y coordinates would cause the tooltip to run off screen, it is repositioned to be entirely visible.
The tooltip is displayed until one of the following occurs:
A GUI window may be made the owner of a tooltip by means of the OwnDialogs option. Such a tooltip is automatically destroyed when its owner is destroyed.
Related
Examples
Shows a multiline tooltip at a specific position in the active window.
Hides a tooltip after a certain amount of time without having to use Sleep (which would stop the current thread).
ToolTip
Creates an always-on-top window anywhere on the screen.
Parameters
If blank or omitted, the existing tooltip (if any) will be hidden. Otherwise, this parameter is the text to display in the tooltip. To create a multi-line tooltip, use the linefeed character (`n) in between each line, e.g. Line1`nLine2.
If Text is long, it can be broken up into several shorter lines by means of a continuation section, which might improve readability and maintainability.
The X and Y position of the tooltip relative to the active window (use CoordMode, ToolTip to change to screen coordinates). If the coordinates are omitted, the tooltip will be shown near the mouse cursor. X and Y can be expressions.
Omit this parameter if you don’t need multiple tooltips to appear simultaneously. Otherwise, this is a number between 1 and 20 to indicate which tooltip window to operate upon. If unspecified, that number is 1 (the first). This parameter can be an expression.
Remarks
A tooltip usually looks like this:
If the X & Y coordinates would cause the tooltip to run off screen, it is repositioned to be entirely visible.
The tooltip is displayed until one of the following occurs:
A GUI window may be made the owner of a tooltip by means of Gui +OwnDialogs. Such a tooltip is automatically destroyed when its owner is destroyed.
Related
Examples
Shows a multiline tooltip at a specific position in the active window.
Hides a tooltip after a certain amount of time without having to use Sleep (which would stop the current thread).
Содержание
Text (надпись)
Описание: элемент управления Text представляет собой область, содержащую недоступный для редактирования текст без рамки. Часто используется в качестве пояснительной надписи для других элементов управления. Пример:
В приведенном примере последним параметром является строка, предназначенная для вывода на экран. В ней могут содержаться символы перевода строки (`n). Кроме того, с помощью секции продолжения можно разбить одну длинную строку на несколько более коротких.
Поскольку содержимое элемента управления находится в последнем параметре команды GUI, в экранировании буквальных запятых нет необходимости, что, впрочем, справедливо и для последних параметров всех прочих команд.
В опции элемента управления можно поместить метку перехода, например, gMySubroutine. После этого каждый раз при щелчке мышью по тексту она будет запускаться автоматически. Это свойство можно использовать для того, чтобы имитировать гиперссылку так, как это показано в приведенном ниже скрипте:
Двойной щелчок можно обнаружить, проверив, содержит ли переменная A_GuiControlEvent слово DoubleClick.
Edit (редактируемое поле ввода)
Описание: элемент управления Edit представляет собой область, в которой пользователь может напечатать произвольный текст. Пример:
Если задано несколько строк текста, элемент управления будет многострочным. Например, задав в опциях r3, вы получите трехстрочное редактируемое поле ввода со следующими характеристиками: вертикальная полоса прокрутки, перенос слова без разбивки на новую строку, клавиша Enter осуществляет ввод, а не запускает кнопку по умолчанию окна.
Чтобы начать новую строку в многострочном редактируемом поле ввода, в последнем параметре (содержимом) можно задать либо просто символ перевода строки (`n), либо символ перевода строки вместе с символом возврата каретки (`r`n). Оба способа приведут к появлению в редактируемом поле ввода пары непечатаемых символов `r`n. Однако если элемент управления сохраняется в своей переменной с помощью команд Gui Submit или GuiControlGet, то каждая комбинация `r`n в тексте будет преобразована просто в символ перевода строки (`n). В примере, приведенном ниже, показано, как сохранить текст в файл:
Если в элементе управления разрешен перенос слов без разбивки на другую строку (что является свойством по умолчанию для многострочных редактируемых полей ввода), то переносы, осуществляемые во время ввода данных, не приведут к появлению символов перевода строки (это может произойти только при нажатии клавиши Enter).
В версиях AutoHotkey 1.0.35 и выше в опциях элемента управления можно поместить метку перехода, например, gMySubroutine. После этого каждый раз при изменении пользователем содержимого элемента управления эта метка будет запускаться автоматически.
СОВЕТ: чтобы загрузить текстовый файл в редактируемое поле ввода, используйте команды FileRead и GuiControl. Например:
Опции Edit (чтобы удалить опцию, поставьте перед ней знак минуса):
Limit: ограничивает ввод текста видимой шириной редактируемого поля. Кроме того, чтобы ограничить ввод текста определенным количеством символов, можно непосредственно после опции указать их количество. Например, Limit10 позволит ввести не более 10 символов.
Lowercase: символы, вводимые пользователем, автоматически конвертируются в нижний регистр.
Multi: позволяет вводить несколько строк текста. Однако обычно в этой опции нет необходимости, поскольку количество строк автоматически выводится из заданных значений высоты (H), количества строк (R) или содержимого (Text).
Number: позволяет вводить в поле только цифры (впрочем, остается возможность вводить нечисловые символы путем копирования). Альтернативным способом принудительного введения числовых данных является присоединение к Edit элемента управления UpDown.
Password: скрывает введенные данные (например, пароль), заменяя для этого введенные пользователем символы на маскирующие знаки. Если вы не хотите использовать маскирующий знак, заданный по умолчанию, укажите желаемый символ непосредственно после слова Password. Например, если задать Password*, то маскирующим знаком, вместо установленного в Windows XP по умолчанию черного кружка (буллита), будет звездочка. Примечание: данная опция не действует для многострочных редактируемых полей ввода.
ReadOnly: не позволяет пользователю изменять содержимое элемента управления. Тем не менее, текст можно прокручивать для просмотра, выделять и копировать в буфер.
Tn: опция T используется для того, чтобы задать шаг табуляции в пределах многострочного редактируемого поля ввода (поскольку шаг табуляции определяет позиции колонок, по которым будут «прыгать» буквальные символы табуляции, их можно использовать для разбиения текста на колонки). Если опция T не используется, позиции табуляции устанавливаются через каждые 32 единицы диалога (ширина «единицы диалога» зависит от операционной системы). Если опция T используется однократно, позиции табуляции задаются через каждые n единиц по всей ширине элемента управления. Например, команда Gui, Add, Edit, vMyEdit r16 t64 удвоит используемое по умолчанию расстояние между позициями табуляции. Чтобы создать собственные позиции табуляции, задайте опцию T несколько раз так, как показано в следующем примере: Gui, Add, Edit, vMyEdit r16 t8 t16 t32 t64 t128. Для каждой позиции колонки с абсолютными координатами задается одна позиция табуляции. Этот список может содержать максимум 50 позиций табуляции.
Uppercase: символы, вводимые пользователем, автоматически конвертируются в верхний регистр.
UpDown [в версиях 1.0.35 и выше] (счётчик)
Описание: элемент управления UpDown представляет собой две кнопки со стрелками, вверх и вниз, которые используются для увеличения или уменьшения значения. По умолчанию элемент управления UpDown автоматически присоединяет к себе ранее добавленный элемент управления. Этот ранее добавленный элемент управления называют «присоединенным элементом управления». Наиболее распространенным примером такого присоединения является так называемый «счетчик», представляющий собой связку элементов управления UpDown и Edit. Пример:
В этом примере элемент управления Edit присоединен к элементу управления UpDown. Каждый раз при нажатии одной из кнопок со стрелками, число в элементе управления Edit автоматически возрастает или уменьшается.
К элементу управления UpDown также можно присоединить элементы управления Text или ListBox. Однако есть вероятность, что вследствие ограничений в операционной системе, элементы управления, отличные от упомянутых (в частности, комбинированный (ComboBox) и выпадающий (DropDownList) списки), не будут работать корректно с метками перехода и другими возможностями.
Задайте начальную позицию элемента управления UpDown в качестве последнего параметра (если этот параметр опущен, отсчет начинается с 0 или с числа, входящего в ближайший к нулю допустимый диапазон).
При использовании команды Gui Submit ассоциированная с элементом управления выходная переменная (если таковая существует) принимает текущую числовую позицию элемента управления UpDown. Если UpDown присоединен к элементу управления Edit и вы не хотите проверять введенные пользователем данные, тогда лучше всего вместо значений Edit использовать значения UpDown, так как UpDown всегда возвращает значение, входящее в допустимый диапазон, даже если пользователь задал в элементе управления Edit какое-нибудь нечисловое или не входящее в диапазон значение. Кроме того, в числах, состоящих более чем из трех цифр, по умолчанию ставятся разделительные знаки (например, в виде запятой), отделяющие тысячи. Эти разделительные знаки хранятся в выходной переменной элемента управления Edit, но не элемента управления UpDown.
Если в UpDown задана метка перехода, каждый щелчок мышью по кнопкам со стрелками или нажатие клавиш со стрелками приведет к ее запуску. Также при каждом запуске метки перехода в выходной переменной, ассоциированной с элементом управления UpDown, будет сохранена его позиция.
Horz: меняет направление стрелок на кнопках элемента управления с вверх/вниз на вправо/влево. Кроме того, опция Horz по умолчанию отсоединяет присоединенный элемент. Этого можно избежать, если в опциях элемента управления задать Horz 16.
Left: помещает элемент управления UpDown в левой части своего «присоединенного элемента».
Wrap: приводит к тому, что при попытке пользователя выйти за пределы минимального значения, элемент управления переходит к максимальному значению и наоборот. Если опция Wrap не задана, элемент управления по достижении максимального или минимального значения остановится.
-16 (минус 16): отсоединяет вертикальный элемент управления UpDown от присоединенного элемента управления. В результате для UpDown отпадает необходимость согласовывать свои размеры с размерами присоединенного элемента – он получает возможность иметь любые заданные ширину, высоту и расположение. Кроме того, UpDown без присоединенного элемента управления сам отслеживает свое местоположение, которое можно извлечь обычным путем, например, с помощью команды Gui Submit.
Picture (или Pic, картинка)
Описание: элемент управления Picture представляет собой область, содержащую рисунок (в последних двух абзацах данного раздела указаны типы файлов, поддерживаемые различными версиями операционных систем). Последним параметром данной команды является имя файла рисунка. Если не определен точный путь, предполагается, что файл расположен в папке A_WorkingDir. Пример:
В опции элемента управления можно поместить метку перехода, например, gMySubroutine. Это приведет к тому, что метка будет автоматически вызываться при каждом щелчке пользователя по картинке. Двойной щелчок можно обнаружить, если проверить, содержит ли переменная A_GuiControlEvent слово DoubleClick.
Для того чтобы сделать картинку фоном для других элементов управления, ее, как правило, добавляют перед этими элементами управления. Однако если эти элементы управления предназначены для ввода данных, а картинка имеет метку перехода, создайте картинку после других элементов управления и задайте в опциях картинки 0x4000000 (стиль WS_CLIPSIBLINGS). Этот прием также поможет сделать картинку фоном для элемента управления Tab или ListView.
Иконки, курсоры и анимированные курсоры: доступные для загрузки иконки и курсоры находятся в файлах следующего типа: ICO, CUR, ANI, EXE, DLL, CPL, SCR, а также в других типах файлов, содержащих иконки. Чтобы использовать группы иконок, помимо первой, задайте в опциях слово Icon и номер нужной вам группы. В примере, приведенном ниже, используется иконка по умолчанию из второй группы:
Если в опциях задать слово AltSubmit, программа загрузит изображение с помощью динамической библиотеки GDIPlus.dll компании Microsoft, что может привести к тому, что изображения с расширением GIF и BMP, а также иконки, будут иметь другой вид. Например, изображение с расширением ICO/GIF и прозрачным фоном будет загружено как прозрачный точечный рисунок, что позволит вступить в силу опции BackgroundTrans. Если файл GDIPlus недоступен (см. следующий абзац), опция AltSubmit будет пропущена, а изображение загружено с помощью обычных методов.
Все операционные системы поддерживают изображения с расширением GIF, JPG, BMP, ICO, CUR и ANI. Кроме уже перечисленных расширений, поддерживаются такие форматы, как PNG, TIF, Exif, WMF и EMF. Чтобы более ранние, чем Windows XP, операционные системы поддерживали эти форматы, нужно скопировать файл GDI+ DLL (предоставляемый компанией Microsoft бесплатно) в папку AutoHotkey.exe (однако если речь идет о скомпилированном скрипте, скопируйте DLL в папку скрипта). Чтобы скачать DLL, на сайте www.microsoft.com в окошке поиска наберите: gdi redistributable.
Button (кнопка)
Описание: элемент управления Button представляет собой кнопку, предназначенную для запуска какой-либо операции. Последним параметром здесь является название кнопки, которое отображается на ее поверхности и может содержать символы перевода строки (`n). Пример:
В опциях этого примера содержится слово Default, нужное для того, чтобы сделать кнопку «OK» кнопкой по умолчанию. Теперь при нажатии ENTER, автоматически запустится та операция, за которую ответственна кнопка по умолчанию, кроме случаев, когда фокус ввода с клавиатуры находится на другой кнопке или стилем многострочного редактируемого элемента управления является WantReturn. В следующем примере показано, как позднее можно сделать кнопкой по умолчанию другую кнопку. Здесь кнопкой по умолчанию становится Cancel:
В приведенном ниже примере показано, как сделать, чтобы в окне вообще не было кнопок по умолчанию:
Для того чтобы выделить одну из букв, в названии кнопки можно использовать амперсанд (&). Например:
В приведенном примере будет выделена буква P, что позволит пользователю использовать комбинацию Alt+P в качестве «быстрой клавиши».
Если у кнопки нет явно заданной метки перехода, метка будет присвоена автоматически. Например, если в первом окне GUI содержится кнопка OK, при ее нажатии будет запущена метка ButtonOK (если таковая существует). Для последующих окон GUI в автоматически присвоенной метке кнопки добавляется номер окна, например: 2ButtonOK.
Если в тексте на кнопке есть пробелы, амперсанды, символы перевода строки (`n), или возврата каретки (`r), то в автоматически присвоенной метке эти символы будут опущены. Например, автоматически присвоенной меткой кнопки под названием «&Pause» будет ButtonPause. Подобным образом, меткой кнопки «Save && Exit» будет ButtonSaveExit (двойной амперсанд используется для отображения одного буквального амперсанда).
Checkbox (флажок)
Описание: элемент управления Checkbox представляет собой маленькое окошко, где при выборе варианта On/Off, Yes/No и т.д. ставится или снимается флажок. Пример:
В опциях элемента управления можно поместить метку перехода, например, gMySubroutine. Это приведет к автоматическому запуску метки при каждом щелчке по флажку или его изменении.
Radio (переключатель)
Данный элемент управления обычно входит в группу кнопок-переключателей, которая содержит несколько таких кнопок. Когда пользователь включает (on) одну из кнопок, остальные автоматически устанавливаются на off (внутри группы можно перемещаться с помощью клавиш со стрелками). Группа переключателей формируется автоматически из последовательно добавленных кнопок-переключателей. Для того чтобы сформировать новую группу, задайте слово Group в опциях первой кнопки, которая войдет в эту группу; или просто добавьте перед новой группой элемент управления, не являющийся переключателем: первый же переключатель, добавленный после этого элемента управления, автоматически начнет новую группу.
В опции элемента управления можно поместить метку перехода например, gMySubroutine. Это приведет к тому, что метка будет автоматически вызываться каждый раз, когда кнопка переключается на on (включено). В отличие от режима единственной переменной, описанного в предыдущем абзаце, метка перехода должна быть определена для каждой из тех кнопок-переключателей в группе, метка которых должна быть запущена. Это дает возможность игнорировать щелчки по определенным кнопкам. И последнее: двойной щелчок можно обнаружить, если проверить, содержит ли переменная A_GuiControlEvent слово DoubleClick.
DropDownList (или DDL, выпадающий список)
Описание: элемент управления DropDownList представляет собой список вариантов, отображающийся при нажатии на маленькую кнопку. Последним параметром в этом случае является список вариантов, разделенный символами конвейера (|), например, Choice1|Choice2|Choice3. Пример:
Для автоматической конвертации всех пунктов из списка в верхний или нижний регистр, задайте в опциях Uppercase или Lowercase соответственно. А чтобы автоматически отсортировать содержимое списка в алфавитном порядке, задайте слово Sort (пункты, добавленные позднее при помощи команды GuiControl, также будут отсортированы). Кроме того, опция Sort предоставляет возможность последовательного поиска в развернутом списке, при котором пункт ищется по первым нескольким символам его названия.
В опциях элемента управления можно задать метку перехода, например, gMySubroutine. При этом метка будет автоматически вызываться при выборе очередного пункта.
Используйте опции R и H, чтобы задать высоту выпадающего списка. Например, при R5 высота списка составит 5 строк. Если же обе эти опции опущены, список в высоту займет всю доступную область рабочего стола.
ComboBox (комбинированный список)
Описание: элемент управления ComboBox очень похож на элемент управления DropDownList, однако в отличие от последнего, позволяет в качестве альтернативы выбору пункта из списка вводить текст в свободном формате. Пример:
В дополнение к опциям, присущим элементу управления DropDownList, о которых рассказывалось выше, в опции ComboBox можно включить слово Limit, ограничивающее ввод данных шириной редактируемого поля ввода. Можно также задать слово Simple, в результате чего ComboBox будет вести себя как редактируемое поле ввода со списком (ListBox) внизу.
В опциях элемента управления можно поместить метку перехода например, gMySubroutine. Это приведет к тому, что метка будет автоматически загружаться при выборе каждого нового пункта.
ListBox (список)
Описание: элемент управления ListBox представляет собой относительно большое по высоте окошко со списком вариантов для выбора. Здесь последним параметром является разделенный символами конвейера список вариантов, например, Choice1|Choice2|Choice3. Пример:
Multi: позволяет одновременно выбирать несколько пунктов при помощи комбинаций shift+щелчок мышью и control+щелчок мышью. (Для того, чтобы избежать необходимости использовать приведенные комбинации, задайте вместо слова Multi, число 8). В этом случае команда Gui Submit сохранит список строк-пунктов, отделенных друг от друга разделителем, в выходной переменной элемента управления. Однако если действует опция AltSubmit, то вместо строк команда Gui Submit сохранит список порядковых номеров пунктов, отделенных друг от друга разделителем. Например, 1|2|3 означает, что выбраны первые три пункта. Для того, чтобы извлечь отдельные элементы из строки, используйте синтаксический разбор (parsing loop) так, как показано в примере:
ReadOnly: запрещает визуальное выделение пунктов при выборе их из списка (тем не менее, команда Gui Submit сохранит выбранный пункт).
Sort: автоматически сортирует содержимое списка в алфавитном порядке (пункты, добавленные позднее с помощью команды GuiControl, также будут отсортированы). Кроме того, опция Sort предоставляет возможность последовательного поиска, при котором пункт ищется по первым нескольким символам его названия.
Tn: при помощи буквы T можно задавать позиции табуляции. Это свойство используется для разбиения текста на колонки. Если опция T не используется, позиции табуляции устанавливаются через каждые 32 единицы диалога (ширина «единицы диалога» зависит от операционной системы). Если опция T используется однократно, позиции табуляции задаются через каждые n единиц по всей ширине элемента управления. Например, команда Gui, Add, ListBox, vMyListBox t64 удвоит используемое по умолчанию расстояние между позициями табуляции. Чтобы создать собственные позиции табуляции, задайте опцию T несколько раз так, как показано в следующем примере: Gui, Add, ListBox, vMyListBox t8 t16 t32 t64 t128. Для каждой позиции колонки с абсолютными координатами задается одна позиция табуляции. Этот список может содержать максимум 50 позиций табуляции.
ListView (список) и TreeView (дерево)
См. описание ListView и TreeView в отдельных статьях.
Hotkey (горячая клавиша)
Описание: элемент управления Hotkey представляет собой окошко, похожее на однострочный редактируемый элемент управления. В нем отображается комбинация клавиш, нажатая пользователем. Например, если пользователь в английской клавиатурной раскладке набрал Control+Alt+C, в окошке отобразится «Ctrl + Alt + C».
По умолчанию, элемент управления в начальной позиции не содержит горячих клавиш. Для того чтобы по умолчанию в элементе управления отображалась горячая клавиша, задайте ее модификаторы и имя в качестве последнего параметра так, как показано в примере: Gui, Add, Hotkey, vMyHotkey, ^!p.
В опциях элемента управления можно поместить метку перехода например, gMySubroutine. Это приведет к тому, что метка будет автоматически запускаться при каждом изменении горячей клавиши. Кроме того, при каждом запуске метки перехода горячая клавиша сохраняется в выходной переменной, ассоциированной с элементом управления (если такая переменная существует). Примечание: метка перехода запускается даже при неполной горячей клавише. Например, когда пользователь удерживает клавишу Control, метка перехода запускается первый раз, а выходной переменной присваивается только знак крышки (^). После того, как горячая клавиша полностью нажата, метка запускается снова, а выходная переменная содержит уже полную комбинацию.
Для того чтобы ограничить количество типов горячих клавиш, доступных для ввода, задайте слово Limit, за которым следует одно число или сумма нескольких чисел, приведенных далее:
1: Запретить немодифицированные клавиши.
2: Запретить горячие клавиши, начинающиеся с Shift.
4: Запретить горячие клавиши, начинающиеся с Control.
8: Запретить горячие клавиши, начинающиеся с Alt.
16: Запретить горячие клавиши, начинающиеся с Shift-Control.
32: Запретить горячие клавиши, начинающиеся с Shift-Alt.
64: Данное значение не поддерживается (работает некорректно).
128: Запретить горячие клавиши, начинающиеся с Shift-Control-Alt.
Например, если задать Limit1, для ввода будут запрещены такие немодифицированные клавиши, как буквы и цифры, а при Limit15 потребуется как минимум два модификатора. Запрещенная комбинация модификаторов при вводе автоматически (и визуально) заменяется на Control+Alt.
Элемент управления Hotkey имеет ограниченные возможности. Например, он не поддерживает ни горячие клавиши на мыши/джойстике, ни клавиши Windows (LWin и RWin). Единственным средством обойти это ограничение и получить возможность использовать такие дополнительные модификаторы, как клавиши Windows, является создание одного или нескольких флажков (checkboxes).
DateTime [в версиях 1.0.35 и выше] (поле даты/времени)
Описание: элемент управления DateTime представляет собой окошко, похожее на однострочный редактируемый элемент управления. В нем отображаются дата и/или время. В DateTime также предусмотрен календарь. Пример:
Одно из приведенных ниже значений можно задать в качестве последнего параметра:
(пропущен): если параметр не задан, используется краткий региональный формат даты. Например, формат может быть таким: 6/1/2005.
LongDate: дата в длинном (полном) формате. Например: Wednesday, June 01, 2005.
Time: время в региональном формате. Несмотря на то, что данный параметр не предусматривает отображение даты, она присутствует в элементе управления и извлекается вместе со временем в формате YYYYMMDDHH24MISS.
(пользовательский формат): задайте дату и время в любом формате. Например, если задать M/d/yy HH:mm, на экране будет отображено 6/1/05 21:37. Подобным образом, dddd MMMM d, yyyy hh:mm:ss tt будет выглядеть как Wednesday June 1, 2005 09:37:45 PM. Буквальные буквы и цифры необходимо заключать в одинарные кавычки: ‘Date:’ MM/dd/yy ‘Time:’ hh:mm:ss tt. В отличие от этого, символы не являющиеся буквами или цифрами, например, пробелы, символы табуляции, слеши, двоеточия, запятые и другие знаки пунктуации, заключать в одинарные кавычки нет необходимости. Исключением является сама одинарная кавычка: для того, чтобы получить буквальные кавычки, задайте последовательно четыре одинарные (»»), или, если цитата уже заключена во внешнюю пару кавычек, только две одинарные кавычки.
Чтобы получить дату, отличную от отображаемой по умолчанию даты текущего дня, задайте в опциях слово Choose и сразу же за ним – дату в формате YYYYMMDD. Например, если задать Choose20050531, датой по умолчанию будет 31 мая 2005 года (также можно задать переменную, например, Choose%Var%). Для того чтобы по умолчанию не отображались ни дата, ни время, задайте ChooseNone. При этом дополнительно внутри элемента управления будет создан флажок, который будет оставаться пустым, пока элемент управления не содержит дату. Если элемент управления не содержит дату, команды Gui Submit и GuiControlGet извлекают пустое значение (пустую строку).
Для того чтобы задать дату в формате YYYYMMDDHH24MISS, необходима только первая часть выражения. Если какой-либо элемент опущен, по умолчанию он устанавливается на следующие значения:
MM: 01 месяц
DD: 01 день
HH24: 00 часов
MI: 00 минут
SS: 00 секунд
Чтобы выбрать текущую дату, можно щелкнуть по находящейся в нижней части календаря строке с текущей датой. Кроме того, щелчок по году и названию месяца, позволяет выбрать их новые значения.
Навигация с помощью клавиатуры: для увеличения или уменьшения значения элемента управления используйте клавиши со стрелками вверх/вниз (Up/Down), плюс/минус в правой части клавиатуры (NumpadPlus/Minus) и Home/End, а чтобы переходить с одного поля на другое в пределах элемента управления – клавиши со стрелками вправо и влево (LeftArrow и RightArrow). Чтобы в выпадающем календаре:
При использовании команды Gui Submit выходной переменной, ассоциированной с элементом управления (если таковая существует), присваиваются выбранные дата и время в YYYYMMDDHH24MISS формате. Дата и время присваиваются вне зависимости от того, отображены ли они в элементе управления.
Если для элемента управления задана метка перехода, она запускается при каждом изменении даты или времени. При каждом запуске выходная переменная, ассоциированная с элементом управления (если таковая существует), автоматически обновляется. Ей присваиваются выбранные на тот момент дата и время.
Range: устанавливает диапазон, ограничивающий выбор дат в прошлом и будущем. После слова Range задайте минимальную и максимальную даты в формате YYYYMMDD (разделенные тире). Например, если задать Range20050101-20050615, выбор дат будет ограничен первыми пятью с половиной месяцами 2005 года. Можно снять ограничение с нижней или верхней границы. Например, Range20010101 не разрешит выбирать даты раньше 2001 года, а Range-20091231 (с тире впереди) – позднее 2009 года. Если опция Range не задана, разрешается выбирать любую дату в диапазоне от 1601 по 9999 год. Выбор времени суток ограничить нельзя.
Right: если задана эта опция, календарь будет выпадать не с левой, а с правой стороны.
1: задайте в опциях число 1 для того, чтобы заменить выпадающий календарь элементом управления Up-down. Он будет расположен в правой части элемента управления DateTime и позволит изменять значения даты-времени.
2: задайте в опциях число 2 для того, чтобы создать внутри элемента управления флажок. Снятая галочка будет означать, что дата/время не выбраны. После создания элемента управления, данную опцию изменить нельзя.
MonthCal [в версиях 1.0.35 и выше] (календарь)
Описание: MonthCal представляет собой довольно большой по размерам элемент управления, который отображает дни месяца в календарном формате и позволяет выбирать одну дату или диапазон дат. Пример:
Для того чтобы по умолчанию была выбрана дата, отличная от текущей, задайте ее в формате YYYYMMDD в качестве последнего параметра (например, 20050531). Таким же образом можно задать диапазон дат. Для этого между двумя датами необходимо поставить тире (например, 20050525-20050531).
Чтобы выбрать дату текущего дня, можно щелкнуть по строке в нижней части элемента управления. Кроме того, щелчки по году и названию месяца позволяют выбирать их новые значения.
В отличие от выпадающего календаря элемента управления DateTime, в MonthCal навигация с помощью клавиатуры как правило не поддерживается.
Если для MonthCal задана метка перехода, то при каждом ее запуске выходная переменная, ассоциированная с элементом управления (если таковая существует), обновляется. Ей присваиваются выбранные на тот момент дата или диапазон дат. По умолчанию, метка запускается только в следующих случаях: 1) если пользователь выбрал другую дату (другие даты). 2) каждые 2 минуты, если наступил новый день (подобное поведение является особенностью ОС). Впрочем, если в опциях элемента управления задано слово AltSubmit (в версиях 1.0.35.09 и выше), метка перехода запускается чаще, а встроенной переменной A_GuiControlEvent присваивается:
Multi: множественный выбор. Позволяет выбирать диапазон расположенных рядом дат с помощью shift (shift-click) или перетаскиванием (click-drag) (выбор одной даты также возможен). Данную опцию можно задать явно или ввести в действие автоматически, определив желаемый диапазон при создании элемента управления. Например: Gui, Add, MonthCal, vMyCal, 20050101-20050108. После создания элемента управления данную опцию изменить нельзя.
4: задайте в опциях число 4, чтобы слева от каждого ряда дат был показан номер недели (1-52). Неделей №1 считается первая неделя года, содержащая не менее четырех дней.
8: задайте в опциях число 8, чтобы запретить обведение текущей даты рамкой.
16: задайте в опциях число 16, чтобы запретить отображение текущей даты в нижней части элемента управления.
Slider (ползунок)
Описание: элемент управления Slider представляет собой ползунок, который можно перемещать вдоль горизонтальной или вертикальной направляющей. Примером ползунка является стандартный регулятор громкости в трее на панели задач. Пример:
Задайте в качестве последнего параметра начальную позицию ползунка. Если последний параметр пропущен, ползунок по умолчанию устанавливается на нулевую отметку или на ближайшую к нулю отметку в разрешенном диапазоне.
При использовании команды Gui Submit ассоциированная с элементом управления выходная переменная (если таковая существует) принимает текущую числовую позицию ползунка. Эта позиция также сохраняется в выходной переменной при каждом запуске метки перехода.
Если ползунок имеет метку перехода, по умолчанию она запускается только после остановки движения ползунка (например, при отпускании кнопки мыши после его перетаскивания). Однако если в опциях задано слово AltSubmit, метка перехода запускается для всех событий ползунка, а встроенной переменной A_GuiControlEvent присваивается одно из приведенных ниже значений (число или строка):
0: Пользователь нажал клавишу со стрелкой влево или вверх (Left-arrow или Up-arrow).
1: Пользователь нажал клавишу со стрелкой вправо или вниз (Right-arrow или Down-arrow).
2: Пользователь нажал клавишу Page-up.
3: Пользователь нажал клавишу Page-down.
4: Пользователь передвинул ползунок с помощью колесика мыши или завершил его перетаскивание на новую позицию.
5: В данный момент пользователь перетаскивает ползунок с помощью мыши, то есть кнопка мыши нажата.
6: Пользователь нажал клавишу Home, чтобы передвинуть ползунок к левому или верхнему краю направляющей.
7: Пользователь нажал клавишу End, чтобы передвинуть ползунок к правому или нижнему краю направляющей.
Normal: Пользователь закончил перемещать ползунок с помощью мыши, либо с помощью клавиатуры. Примечание: за исключением прокручивания колесика мыши (4), метка перехода запускается снова для события «normal» даже в том случае, если ранее она уже запускалась для одного из событий-цифр.
Buddy1 и Buddy2: каждая из этих двух опций автоматически размещает рядом с ползунком указанный существующий элемент управления. Buddy1 отображается слева или сверху (зависит от наличия опции Vertical). Buddy2 отображается справа или снизу. После слов Buddy1 или Buddy2 задайте имя переменной существующего элемента управления. Например, опция Buddy1MyTopText задаст элемент управления с именем переменной MyTopText.
Center: делает ползунок (передвигаемый брусочек) тупым с обоих концов, а не острым с одной стороны.
Invert: переворачивает элемент управления так, что меньшее значение оказывается не слева/внизу, а справа/вверху. Как правило, эта опция используется для того, чтобы вертикальный ползунок двигался в том же направлении, что и традиционный регулятор громкости. Примечание: опция ToolTip, о которой идет речь ниже, не подчиняется такой перестановке и, следовательно, здесь не используется.
Left: направляет острие ползунка (передвигаемого брусочка) вверх. Однако если действует опция Vertical, ползунок будет указывать налево.
Line: задает количество позиций, на которое будет передвигаться ползунок при нажатии одной из клавиш со стрелками. После слова Line задайте количество позиций. Например: Line2.
NoTicks: отменяет отображение временных отметок.
Page: задает количество позиций, на которое будет передвигаться ползунок при нажатии клавиш Page-up или Page-down. После слова Page задайте количество позиций. Например: Page10.
TickInterval: отображает временные отметки через заданный интервал. После слова TickInterval задайте необходимый интервал (если опция опущена, интервал по умолчанию равен 1). Например, опция TickInterval10 отобразит временные отметки через каждые 10 позиций.
ToolTip: создает при перемещении ползунка всплывающую подсказку, отображающую его текущую позицию. Для того чтобы подсказка появлялась в месте, отличном от места по умолчанию, задайте один из приведенных далее вариантов опции: ToolTipLeft или ToolTipRight (для горизонтальных ползунков); ToolTipTop или ToolTipBottom (для вертикальных ползунков).
Vertical: создает вертикальный ползунок.
Все описанные выше опции можно изменить при помощи команды GuiControl уже после создания элемента управления.
Progress (индикатор прогресса)
Описание: элемент управления Progress представляет собой двухцветную панель, которая используется, как правило, для индикации времени (в процентах), оставшегося до окончания выполнения операции. Пример:
Задайте начальную позицию индикатора в качестве последнего параметра (если данный параметр опущен, индикатор по умолчанию устанавливается на 0 или на ближайшее к нулю число в разрешенном диапазоне). Как позднее изменить позицию индикатора, показано в примерах, приведенных далее. Все примеры оперируют с индикатором прогресса, с которым ассоциирована переменная с именем MyProgress:
В горизонтальном индикаторе прогресса толщина индикатора равна высоте элемента управления. В вертикальном индикаторе прогресса толщина индикатора равна ширине элемента управления.
Cn: изменяет цвет индикатора. Задайте в качестве значения n один из 16 основных названий цветов HTML или шестизначный код цвета в формате RGB. Например: cRed, cFFFF33, cDefault. Если опция C не задана (или определена опция cDefault), используется цвет индикатора системы по умолчанию.
BackgroundN: изменяет цвет фона индикатора. Задайте в качестве значения n один из 16 основных названий цветов HTML или шестизначный код цвета в формате RGB. Например: BackgroundGreen, BackgroundFFFF33, BackgroundDefault. Если опция Background не задана (или задана опция BackgroundDefault), цвет фона будет таким же, как у окна или элемента управления «набор вкладок» за ним.
Vertical: изменяет индикатор прогресса на вертикальный.
Все описанные выше опции можно изменить при помощи команды GuiControl уже после создания элемента управления.
GroupBox (рамка группы)
Описание: элемент управления GroupBox представляет собой прямоугольную границу/рамку, часто используемую для того, чтобы показать, что элементы управления, заключенные внутри нее, связаны между собой. Последним параметром здесь является заголовок прямоугольника, отображаемый слева вверху. Пример:
Tab (вкладки)
Описание: элемент управления Tab представляет собой довольно крупный элемент управления, содержащий ряд страниц, на каждой из которых находятся другие элементы управления. Далее мы будем называть эти страницы просто «вкладки». Пример:
После создания элемента управления Tab все элементы управления, добавленные позже, автоматически появятся на первой вкладке. Как изменить такое поведение, показано в примерах, приведенных ниже:
Кроме того, примеры, приведенные выше, можно использовать для назначения элементов управления еще не существующим вкладкам или элементам управления Tab (кроме способа, когда нужно задать заголовок вкладки). Однако в этом случае опции относительного позиционирования, описанные ниже, не поддерживаются.
Подчиненные элементы управления не обязательно должны располагаться в пределах границ вкладки: они будут скрываться и вновь отображаться при открытии или закрытии вкладки, на которой расположены. Подобное поведение особенно характерно для стиля «кнопки», о котором рассказывается ниже.
В опциях элемента управления можно поместить метку перехода например, gMySubroutine. Это приведет к тому, что метка будет запускаться каждый раз при открытии новой вкладки. Если для элемента управления Tab заданы как метка перехода, так и выходная переменная, то при открытии новой вкладки выходной переменной будет присвоен заголовок ранее выбранной вкладки (или номер этой вкладки, если элемент управления Tab имеет свойство AltSubmit).
Навигация с помощью клавиатуры: для того, чтобы осуществлять в элементе управления Tab навигацию по страницам, можно использовать комбинации клавиш Control-PageDown/PageUp. Если фокус ввода находится на элементе управления, не принадлежащем элементу управления Tab, навигация будет осуществляться по первому элементу управления Tab окна. Также для навигации можно использовать комбинации Control-Tab и Control-Shift-Tab, однако они не будут действовать, если элементом управления, находящимся на этот момент в фокусе, является многострочный редактируемый элемент управления (Edit control).
В каждом окне может быть не более 255 элементов управления Tab. В каждом элементе управления Tab может быть не более 256 вкладок (страниц).
Опции элемента управления Tab:
Buttons: вместо вкладок создает в верхней части элемента управления Tab ряд кнопок (при этом границы вкладок, отображаемые по умолчанию, с этой опцией отображаться не будут, так как добавленные элементы управления принадлежат вкладке, а не очерченной границами отображаемой области). [Прим. переводчика: элементы управления принадлежат вкладке потому, что были добавлены в неё, а не потому, что попадают или нет в отображаемые для вкладки границы.]
Left/Right/Bottom: задайте одно из этих слов, чтобы расположить вкладки слева, справа или в нижней части элемента управления. В описании стиля TCS_VERTICAL (см. ссылку в оригинале данной статьи) приведены ограничения по использованию Left и Right.
-Wrap: ограничивает размещение вкладок одним рядом (в этом случае при большом количестве вкладок отображаются кнопки со стрелками, позволяющие осуществлять прокрутку).
StatusBar [в версиях 1.0.44 и выше] (строка состояния)
Описание: элемент управления StatusBar представляет собой строку текста и/или иконки в нижней части окна. StatusBar обычно используется для оповещения об изменении каких-либо условий. Пример:
Самым простым примером использования строки состояния является вызов функции SB_SetText() в случае, если пользователю необходимо сообщить о том, что что-то изменилось. Если необходимо передать несколько сообщений, строка состояния с помощью функции SB_SetParts() делится на секции. Для того чтобы отобразить в строке состояния иконку(и), вызовите функцию SB_SetIcon().
Все приведенные ниже функции элемента управления StatusBar выполняются в текущем потоке в окне Gui, использующемся по умолчанию. (Окно Gui по умолчанию можно изменить с помощью команды Gui, 2:Default). Если окна по умолчанию не существует или в нем нет строки состояния, то, чтобы обозначить ошибку, все SB-функции возвращают 0.
SB_SetText(NewText [, PartNumber, Style]): отображает новый текст в заданной части строки состояния. Если опущен параметр PartNumber, он по умолчанию принимает значение 1. В противном случае, необходимо задать целое число от 1 до 256. Если опущен параметр Style, он по умолчанию принимает значение 0. При этом в элементе управления используется традиционная граница, при которой эта часть строки состояния кажется «утопленной». В противном случае, задайте 1, чтобы у этой части строки состояния не было границ, или 2, чтобы она казалась приподнятой. И последнее: новый текст может содержать до двух символов табуляции (`t): все, что находится с правой стороны от первого знака табуляции, помещается в центре этой части строки состояния, а все, что находится справа от второго знака табуляции, выравнивается по правому краю. Функция SB_SetText() возвращает 1 в случае успеха и 0 при неудаче.
Уведомления о метках перехода: метку перехода, например, gMySubroutine, можно поместить в опциях элемента управления. Это приведет к тому, что метка будет автоматически запускаться при каждом щелчке пользователя по строке состояния. Подпрограмма может обращаться ко встроенным переменным A_Gui и A_GuiControl. Более того, она может обращаться ко встроенной переменной A_GuiEvent, содержащей одну из приведенных далее строк (чтобы обеспечить совместимость скрипта с будущими версиями AutoHotkey, не следует исходить из того, что эти значения являются единственно возможными).
Стили (используются редко): см. таблицу стилей StatusBar по ссылке в оригинале данной статьи.
Известные ограничения: 1) Иногда элементы управления, частично пересекающиеся со строкой состояния, перекрывают ее сверху. Единственным способом избежать этого является уменьшение этих элементов управления через метку GuiSize. 2) В окне может быть только одна строка состояния.
Пример: в конце статьи TreeView (см. ссылку в оригинале данной статьи) приводится пример со строкой состояния, состоящей из нескольких частей.