Код примера
Перем ТФ, ОкноСообщений1, ЭлементСтрокиСостояния3;
Перем Массив1, Массив2, Окно1Создано, Окно2Создано, Окно1, Окно2;
Процедура Меню_Нажатие() Экспорт
Если ТФ.АргументыСобытия.Параметр = "Открыть" Тогда
Уведомить("Открыть " + ТФ.АргументыСобытия.Параметр + " " + ТекущаяУниверсальнаяДатаВМиллисекундах());
ИначеЕсли ТФ.АргументыСобытия.Параметр = "Справка" Тогда
ОкноСообщений1.Кнопки = Массив2;
Уведомить("Пример TUI
|для односкрипта
|на основе Terminal.Gui
|.");
ОкноСообщений1.Кнопки = Массив1;
ИначеЕсли ТФ.АргументыСобытия.Параметр = "СоздатьОкно1" Тогда
СоздатьОкно1();
ИначеЕсли ТФ.АргументыСобытия.Параметр = "СоздатьОкно2" Тогда
СоздатьОкно2();
Иначе
Уведомить("Нажата " + ТФ.АргументыСобытия.Параметр + " " + ТекущаяУниверсальнаяДатаВМиллисекундах());
КонецЕсли;
КонецПроцедуры
Процедура СоздатьОкно1() Экспорт
Если Окно1Создано Тогда
Уведомить("Окно1 уже создано");
Возврат;
КонецЕсли;
Окно1 = ТФ.Окно();
Окно1.Заголовок = "Окно1";
Окно1.Текст = "Когда я был маленький – очень, очень давно, – я читал одну книжку:
|она называлась «Пиноккио, или Похождения деревянной куклы»
|(деревянная кукла по-итальянски – буратино).";
Окно1.Центр(-5);
Окно1.Ширина = ТФ.Величина.Абсолютно(40);
Окно1.Высота = ТФ.Величина.Абсолютно(14);
ЦветоваяСхема1 = ТФ.ЦветоваяСхема();
ЦветоваяСхема1.Нормальный = ТФ.Атрибут(ТФ.Цвет.Серый, ТФ.Цвет.Черный);
ЦветоваяСхема1.Фокус = ТФ.Атрибут(ТФ.Цвет.Синий, ТФ.Цвет.Серый);
Окно1.ЦветоваяСхема = ЦветоваяСхема1;
Кнопка1 = ТФ.Кнопка("Закрыть");
Кнопка1.Центр(10, 3);
Граница1 = ТФ.Граница();
Граница1.СтильГраницы = ТФ.СтильГраницы.Закругленная;
Кнопка1.Граница = Граница1;
Кнопка1.Нажатие = ТФ.Действие(ЭтотОбъект, "Окно_Закрыть", Окно1);
Окно1.Добавить(Кнопка1);
Окно1Создано = Истина;
ТФ.Верхний.Добавить(Окно1);
КонецПроцедуры
Процедура СоздатьОкно2() Экспорт
Если Окно2Создано Тогда
Уведомить("Окно2 уже создано");
Возврат;
КонецЕсли;
Окно2 = ТФ.Окно();
Окно2.Заголовок = "Окно2";
Окно2.Текст = "Когда я был маленький – очень, очень давно, – я читал одну книжку:
|она называлась «Пиноккио, или Похождения деревянной куклы»
|(деревянная кукла по-итальянски – буратино).";
Окно2.Центр(5);
Окно2.Ширина = ТФ.Величина.Абсолютно(40);
Окно2.Высота = ТФ.Величина.Абсолютно(14);
Кнопка2 = ТФ.Кнопка("Закрыть");
Кнопка2.Центр(10, 3);
Граница2 = ТФ.Граница();
Граница2.СтильГраницы = ТФ.СтильГраницы.Закругленная;
Кнопка2.Граница = Граница2;
Кнопка2.Нажатие = ТФ.Действие(ЭтотОбъект, "Окно_Закрыть", Окно2);
Окно2.Добавить(Кнопка2);
Окно2Создано = Истина;
ТФ.Верхний.Добавить(Окно2);
КонецПроцедуры
Процедура Окно_Закрыть() Экспорт
ТФ.Верхний.Удалить(ТФ.АргументыСобытия.Параметр);
Если ТФ.АргументыСобытия.Параметр.Заголовок = "Окно1" Тогда
Окно1Создано = Ложь;
ИначеЕсли ТФ.АргументыСобытия.Параметр.Заголовок = "Окно2" Тогда
Окно2Создано = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ЭлементСтрокиСостояния1_Нажатие() Экспорт
Уведомить("Нажата " + ТФ.АргументыСобытия.Параметр + " " + ТекущаяУниверсальнаяДатаВМиллисекундах());
КонецПроцедуры
Процедура ЭлементСтрокиСостояния2_Нажатие() Экспорт
Уведомить("Нажата " + ТФ.АргументыСобытия.Параметр + " " + ТекущаяУниверсальнаяДатаВМиллисекундах());
КонецПроцедуры
Процедура Уведомить(Сообщ) Экспорт
ОкноСообщений1.Сообщение = Сообщ;
ОкноСообщений1.Показать();
КонецПроцедуры
Процедура Таймер1_ПриСрабатыванииТаймера() Экспорт
ЭлементСтрокиСостояния3.Заголовок = "" + ТекущаяДата();
КонецПроцедуры
Процедура Таймер2_ПриСрабатыванииТаймера() Экспорт
Если Окно1Создано И Окно2Создано Тогда
Иначе
КонецЕсли;
КонецПроцедуры
ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptTerminalGui\OneScriptTerminalGui\bin\Debug\OneScriptTerminalGui.dll");
ТФ = Новый ТерминалФормыДляОдноСкрипта();
Окно1Создано = Ложь;
Окно2Создано = Ложь;
ПанельМеню1 = ТФ.ПанельМеню();
ТФ.Верхний.Добавить(ПанельМеню1);
Файл = ТФ.ПунктМеню();
Файл.Заголовок = "Файл";
ПанельМеню1.ПодМеню.Добавить(Файл);
Правка = ТФ.ПунктМеню();
Правка.Заголовок = "Правка";
ПанельМеню1.ПодМеню.Добавить(Правка);
Отмена = ТФ.ЭлементМеню();
Отмена.Заголовок = "От_мена";
Отмена.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "Отмена");
Правка.Элементы.Добавить(Отмена);
Повтор = ТФ.ЭлементМеню();
Повтор.Заголовок = "Повтор";
Повтор.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "Повтор");
Правка.Элементы.Добавить(Повтор);
Открыть = ТФ.ЭлементМеню();
Открыть.Заголовок = "_Открыть";
Открыть.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "Открыть");
Файл.Элементы.Добавить(Открыть);
СоздатьОкно1 = ТФ.ЭлементМеню();
СоздатьОкно1.Заголовок = "Создать первое окно";
СоздатьОкно1.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "СоздатьОкно1");
Файл.Элементы.Добавить(СоздатьОкно1);
СоздатьОкно2 = ТФ.ЭлементМеню();
СоздатьОкно2.Заголовок = "Создать второе окно";
СоздатьОкно2.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "СоздатьОкно2");
Файл.Элементы.Добавить(СоздатьОкно2);
Печать = ТФ.ЭлементМеню();
Печать.Заголовок = "Печать";
Печать.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "Печать");
Файл.Элементы.Добавить(Печать);
Настройки = ТФ.ПунктМеню();
Настройки.Заголовок = "_Настройки";
Файл.Элементы.Добавить(Настройки);
Файл.Элементы.Добавить();
Выход = ТФ.ЭлементМеню();
Выход.Заголовок = "Вы_ход";
Выход.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "Выход");
Файл.Элементы.Добавить(Выход);
Опции = ТФ.ЭлементМеню();
Опции.Заголовок = "Опции";
Опции.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "Опции");
Настройки.Элементы.Добавить(Опции);
Параметры = ТФ.ЭлементМеню();
Параметры.Заголовок = "Параметры";
Параметры.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "Параметры");
Настройки.Элементы.Добавить(Параметры);
Справка = ТФ.ПунктМеню();
Справка.Заголовок = "Справка";
Справка.Подсказка = "?";
Справка.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", "Справка");
ПанельМеню1.ПодМеню.Добавить(Справка);
ОкноСообщений1 = ТФ.ОкноСообщений();
ОкноСообщений1.Заголовок = "";
ОкноСообщений1.Сообщение = "";
ОкноСообщений1.ИндексКнопкиПоУмолчанию = 0;
Массив1 = Новый Массив();
Массив1.Добавить("Да");
Массив1.Добавить("Нет");
Массив2 = Новый Массив();
Массив2.Добавить("Ок");
ОкноСообщений1.Кнопки = Массив1;
//===============================================================================================
СтрокаСостояния1 = ТФ.СтрокаСостояния();
ТФ.Верхний.Добавить(СтрокаСостояния1);
ЭлементСтрокиСостояния1 = ТФ.ЭлементСтрокиСостояния(ТФ.Клавиши.Null, "Элемент1");
ЭлементСтрокиСостояния1.Нажатие = ТФ.Действие(ЭтотОбъект, "ЭлементСтрокиСостояния1_Нажатие", "Элемент1");
СтрокаСостояния1.Элементы.Добавить(ЭлементСтрокиСостояния1);
ЭлементСтрокиСостояния2 = ТФ.ЭлементСтрокиСостояния(ТФ.Клавиши.Null, "Элемент2");
ЭлементСтрокиСостояния2.Нажатие = ТФ.Действие(ЭтотОбъект, "ЭлементСтрокиСостояния2_Нажатие", "Элемент2");
СтрокаСостояния1.Элементы.Добавить(ЭлементСтрокиСостояния2);
ЭлементСтрокиСостояния3 = ТФ.ЭлементСтрокиСостояния(ТФ.Клавиши.Null, "");
СтрокаСостояния1.Элементы.Добавить(ЭлементСтрокиСостояния3);
Таймер1 = ТФ.Таймер();
Таймер1.Интервал = 1000;
Таймер1.ПриСрабатыванииТаймера = ТФ.Действие(ЭтотОбъект, "Таймер1_ПриСрабатыванииТаймера");
Таймер1.Начать();
ТФ.Запуск();