Графический интерфейс с дизайнером форм для сценарного языка OneScript

698c61948dfc344d4e2c53db02e77007.png

Существует огромное множество скриптовых языков. Существует множество графических интерфейсов для скриптовых языков (англ. graphical user interface, GUI). И существует какое то количество дизайнеров для этих интерфейсов. Добавлю к этим разработкам и свои, а именно — графический интерфейс и дизайнер форм для сценарного языка OneScript.

Реализован представляемый GUI и дизайнер в виде библиотек dll, написанных на языке C# и подключаемых в коде сценария OneScript. Особенность библиотек в том, что они используют как англоязычный, так и русскоязычный синтаксис, просты в освоении, или по другому у них низкий порог вхождения при обучении. Всё это свободно и бесплатно.

Узнал о OneScript прочитав статью на сайте infostart.ru и мысль дополнить его формами возникла сразу. Было это в 2016 году, и вот только год назад закончил работу над первым релизом. Много чему пришлось учиться с нуля, например, учить C#.

Бывает так, что вам нужна программа с набором определенных возможностей, или вы создаете своё рабочее место системного администратора, или просто решили попробовать свои силы в программировании, попробуйте использовать OneScript и эти формы. Начать можно с прочтения статьи: Как решать повседневные задачи с помощью OneScript. OneScript можно скачать здесь: 1Script — язык сценариев для специалистов по 1С.
Библиотеки находятся в свободном доступе на github по ссылкам: Графический интерфейс, Дизайнер форм. Разработку можно вести в обыкновенном текстовом редакторе, ведь это скриптовый язык. Но лучше и удобнее использовать редактор с подсветкой синтаксиса, например Notepad++ или среду разработки Visual Studio Code. Ну и конечно на компьютере должен быть установлен OneScript.

Для примера небольшой фрагмент кода.
Подключаем библиотеку форм и создаем кнопку:

ПодключитьВнешнююКомпоненту("ВашКаталогНаДиске\OneScriptForms.dll");
Ф = Новый ФормыДляОдноСкрипта();
Форма1 = Ф.Форма();
Форма1.Текст = "Форма1";
Форма1.Отображать = Истина;
Форма1.Показать();
Форма1.Активизировать();

Кнопка1 = Форма1.ЭлементыУправления.Добавить(Ф.Кнопка());
Кнопка1.Границы = Ф.Прямоугольник(10, 10, 75, 25);
Кнопка1.Текст = "Кнопка1";

Ф.ЗапуститьОбработкуСобытий();

Подключаем библиотеку дизайнера и запускаем его:

ПодключитьВнешнююКомпоненту("ВашКаталогНаДиске\OneScriptFormsDesigner.dll");
ДФ = Новый ДизайнерФормДляОдноСкрипта();
ДФ.Дизайнер();

Из приведенного выше кода вам теперь понятен синтаксис языка. Собственно это синтаксис платформы 1С: Предприятие.

Возможности форм:

  • методы СвернутьКонсоль (), СкрытьКонсоль (), ВосстановитьКонсоль () позволяют управлять окном консоли, связанной с вызывающим процессом. То есть ДОСовским черным окном

  • использование буфера обмена

  • графика позволит рисовать кистью геометрические фигуры, заливать поверхности паттернами и рисунками, копировать области экрана

  • обработка событий с получением аргументов события

  • отправка нажатия клавиш активному приложению

  • поиск окна по заголовку

  • имитировать программно нажатие кнопок мыши

  • воспроизведение системных звуков и ».wav» файлов

  • создание окон сообщений

  • календари двух видов для удобного выбора даты

  • горизонтальный и вертикальный индикаторы (ProgressBar)

  • работа с кодировкой

  • использование класса Цвет (Color)

  • имеется набор коллекций — МассивСписок (ArrayList), СортированныйСписок (SortedList), СписокЭлементов (ListView), ХэшТаблица (HashTable), Коллекция (Collection)

  • класс Математика (Math) позволит делать математические вычисления

  • форму можно закрепить на рабочем столе и соответственно открепить от рабочего стола. Можно создать виджет, и он не будет свёрнут при использовании команды «Свернуть все окна»

  • работа с иконкой в системном трее

  • наблюдатель файловой системы проинформирует Вас о событиях, произошедших с файлами/каталогами

  • таймер даст возможность выполнять действия в запланированное время

  • есть диалоги для выбора шрифта, цвета, каталога, открытия/сохранения файла

  • при работе с классом Картинка (Bitmap) Вы сможете попиксельно изменять изображение

  • класс Разделитель (Splitter) обеспечит разделение формы на отдельные, регулируемые мышью по размеру, области

  • конечно, есть классы Меню (Menu) и КонтекстноеМеню (ContextMenu)

  • используя сетку свойств, можно например создать настройки интерфейса, доступные пользователю

  • таблицы

Возможности дизайнера:

  • создание форм, размещение на форме элементов управления с помощью мыши

  • работа с несколькими формами одновременно

  • установка/изменение свойств элементов управления, в том числе работа с редакторами коллекций

  • установка обработчиков событий в виде не заполненных кодом процедур

  • спроектированную форму можно сразу запустить на исполнение и увидеть результаты

  • сохранение формы в файл ».osd» с последующим восстановлением для возобновления работы

  • формирование сценария с синтаксисом OneScript или просмотр кода сценария непосредственно в дизайнере

  • редакторы коллекций и свойства представлены только на русском языке

Можно написать множество диалоговых и просто форм, кодируемых в отдельных файлах и работающих как одно приложение. Подробнее об этом написано в справке к библиотекам. Дизайнер дополняет формы. Его назначение понятно. Это визуальное проектирование, размещение объектов на форме, установка свойств объектов, генерирование кода скрипта, готового для исполнения.

Для наглядности приведу скриншоты дизайнера.

Меню дизайнераМеню дизайнераНастройка объекта ДеревоНастройка объекта ДеревоПросмотр кода сценарияПросмотр кода сценария

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

Рекомендую так же ознакомиться с языком программирования Перфолента.Net. Он предоставляет среду разработки (англ. Integrated development environment — IDE), может тесно взаимодействовать с OneScript (разработка — Библиотека для запуска кода Перфоленты из скриптов OneScript), и много чего ещё интересного.

Экосистема OneScript успешно развивается, и надеюсь, моя работа поспособствует популяризации языка.

© Habrahabr.ru