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

08.03.22

Разработка - Работа с интерфейсом

Графический интерфейс расширяет возможности и область применения скриптового языка. Перед вами ещё один вариант GUI для уже широко используемого и отлично зарекомендовавшего себя инструмента автоматизации OneScript. С доступным комплектом контролов можно написать полноценное приложение, со множеством форм и диалогов. Большое внимание уделено документации, есть примеры на каждое свойство/метод. И в придачу к формам написан дизайнер форм. Без него работу над GUI считал не законченной. Всё это для того, чтобы тратить минимум усилий для получения максимального результата.

А зачем это?

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

Формы можно применить для:

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

 

Использование

Разработки доступны на github, графический интерфейс (OneScriptForms) и дизайнер форм (OneScriptFormsDesigner). Там же найдете ссылки на документацию.

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

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

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

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

 

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

  • методы СвернутьКонсоль(), СкрытьКонсоль(), ВосстановитьКонсоль() позволяют управлять окном консоли, связанной с вызывающим процессом. То есть ДОСовским черным окном
  • использование буфера обмена
  • графика позволит рисовать кистью геометрические фигуры, заливать поверхности паттернами и рисунками, копировать области экрана
  • обработка событий с получением аргументов события
  • отправка нажатия клавиш активному приложению
  • поиск окна по заголовку
  • имитировать программно нажатие кнопок мыши
  • воспроизведение системных звуков и ".wav" файлов
  • создание окон сообщений
  • календари двух видов для удобного выбора даты
  • горизонтальный и вертикальный индикаторы (ProgressBar)
  • работа с кодировкой
  • использование класса Цвет
  • имеется набор коллекций - МассивСписок (ArrayList), СортированныйСписок (SortedList), СписокЭлементов (ListView), ХэшТаблица (HashTable), Коллекция (Collection)
  • класс Математика позволит делать математические вычисления
  • форму можно закрепить на рабочем столе и соответственно открепить от рабочего стола. Можно создать виджет, и он не будет свёрнут при использовании команды "Свернуть все окна"
  • работа с иконкой в системном трее
  • наблюдатель файловой системы проинформирует Вас о событиях, произошедших с файлами/каталогами
  • таймер даст возможность выполнять действия в запланированное время
  • есть диалоги для выбора шрифта, цвета, каталога, открытия/сохранения файла
  • при работе с классом Картинка Вы сможете попиксельно изменять изображение
  • класс Разделитель обеспечит разделение формы на отдельные, регулируемые мышью по размеру, области
  • конечно, есть классы Меню и КонтекстноеМеню
  • используя сетку свойств, можно например создать настройки интерфейса, доступные пользователю
  • таблицы

 

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

  • создание форм, размещение на форме элементов управления с помощью мыши
  • работа с несколькими формами одновременно
  • устанавка/изменение свойств элементов управления, в том числе работа с редакторами коллекций
  • устанавка обработчиков событий в виде не заполненных кодом процедур
  • спроектированную форму можно сразу запустить на исполнение и увидеть результаты
  • сохранение формы в файл ".osd" с последующим восстановлением для возобновления работы
  • формирование сценария с синтакисом OneScript или просмотр кода сценария непосредственно в дизайнере
  • редакторы коллекций и свойства представлены только на русском языке

Подробнее по формам: https://ahyahy.github.io/OneScriptForms/index.html

Подробнее по дизайнеру: https://ahyahy.github.io/OneScriptFormsDesigner/index.html

onescript gui designer

См. также

Управление дашбордами

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

2400 руб.

29.06.2020    17200    23    4    

37

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    11691    776    elcoan    47    

108

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    10221    157    acces969    31    

120

Прокси хранилища 1С (IIS, OneScript)

Групповая разработка (Git, хранилище) OneScript DevOps и автоматизация разработки Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    8431    kamisov    57    

95

Модель состояния для MVC

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    4216    kalyaka    4    

31

Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)

Работа с интерфейсом Платформа 1С v8.3 Платные (руб)

Подсистема условного оформления элементов форм (далее подсистема) предназначена для настройки оформления элементов форм (видимость, доступность, цвет фона, цвет текста и прочее) в пользовательском режиме 1С. Также подсистему возможно использовать для ограничения доступа к реквизитам формы для определенных пользователей (или групп пользователей).

6000 руб.

18.01.2022    9111    1    2    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Darklight 32 10.03.22 14:56 Сейчас в теме
Очень интересно. А Есть ли где-нибудь дока по формату файла osd?
2. ahyahy 92 10.03.22 15:33 Сейчас в теме
(1) Нет по osd документации. Формат osd чисто моя выдумка. Сохранение и восстановление нужно было сделать простым для выгрузки/загрузки. Для этого лучше всего подходил формат ini файла. Немного переиначил его для лучшей обработки и сделал osd. Алгоритм выгрузки находится в SaveForm.cs, загрузки в основном в pDesignerMainForm.cs. Я опишу подробнее в справке к дизайнеру, попозже.
3. Darklight 32 10.03.22 16:25 Сейчас в теме
4. ahyahy 92 10.03.22 17:33 Сейчас в теме
(1)Вот подробнее в разделе "Сохранение формы в файл osd" в справке дизайнера https://ahyahy.github.io/OneScriptFormsDesigner/doc.html Не знаю достаточно ли будет этого, пишите.
5. PerlAmutor 129 28.06.23 06:25 Сейчас в теме
Использование Electron было бы более кроссплатформенно и красивее. С другой стороны, если мы имеем дело с консолью, то надо что-то на подобии этого (Textual for Python) https://www.youtube.com/watch?v=FSaI_qJGvAE

https://www.youtube.com/watch?v=-6qhZ5mBUSE&t=23s
Прикрепленные файлы:
Оставьте свое сообщение