Два экрана, две панели меню

Два экрана, две панели меню

Код примера



Перем ТФ, ПанельМеню1, ПанельМеню2, ПервыйЭкран, ВторойЭкран; Перем Окно1, Окно2, ТекстОкна1, ТекстОкна2, Макросы, Правка; Процедура Меню_Нажатие() Экспорт Объект = ТФ.АргументыСобытия.Параметр; КлавишаВызова = Объект.КлавишаВызова; Если ПервыйЭкран.Доступность и ПервыйЭкран.Отображать Тогда Окно1.Текст = ТекстОкна1 + " |" + Объект.Заголовок + ".КлавишаВызова = " + КлавишаВызова + " " + ТекущаяУниверсальнаяДатаВМиллисекундах(); КонецЕсли; Если ВторойЭкран.Доступность и ВторойЭкран.Отображать Тогда Окно2.Текст = ТекстОкна2 + " |" + Объект.Заголовок + ".КлавишаВызова = " + КлавишаВызова + " " + ТекущаяУниверсальнаяДатаВМиллисекундах(); КонецЕсли; КонецПроцедуры Процедура СочетаниеКлавишДействие() Экспорт Объект1 = ТФ.АргументыСобытия.Параметр; Список = Объект1.ПолучитьСочетаниеКлавиш(); Стр = ""; Для Каждого Эл Из Список Цикл Стр = Стр + " | " + Эл.Значение + " (" + Эл.Представление + ") " + ТекущаяУниверсальнаяДатаВМиллисекундах(); КонецЦикла; Если ПервыйЭкран.Доступность и ПервыйЭкран.Отображать Тогда Окно1.Текст = ТекстОкна1 + " |СочетаниеКлавиш для " + Объект1.Заголовок + " = " + Стр; КонецЕсли; Если ВторойЭкран.Доступность и ВторойЭкран.Отображать Тогда Окно2.Текст = ТекстОкна2 + " |СочетаниеКлавиш для " + Объект1.Заголовок + " = " + Стр; КонецЕсли; КонецПроцедуры Процедура ПерейтиНаВторойЭкран() Экспорт ПервыйЭкран.Доступность = Ложь; ПервыйЭкран.Отображать = Ложь; ВторойЭкран.Доступность = Истина; ВторойЭкран.Отображать = Истина; КонецПроцедуры Процедура ПерейтиНаПервыйЭкран() Экспорт ВторойЭкран.Доступность = Ложь; ВторойЭкран.Отображать = Ложь; ПервыйЭкран.Доступность = Истина; ПервыйЭкран.Отображать = Истина; КонецПроцедуры Процедура СоздатьПанельМенюДляВторогоЭкрана() Экспорт ПанельМеню2 = ТФ.ПанельМеню(); ПанельМеню2.Клавиша = ТФ.Клавиши.F9 + ТФ.Клавиши.CtrlMask; // F9 + Ctrl ВторойЭкран.Добавить(ПанельМеню2); Инструменты = ТФ.ПунктМеню(); Инструменты.Заголовок = "_Инструменты"; Инструменты.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Инструменты); ПанельМеню2.ПодМеню.Добавить(Инструменты); Сгенерировать = ТФ.ЭлементМеню(); Сгенерировать.Заголовок = "Сгенерировать"; Сгенерировать.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Сгенерировать); Инструменты.Элементы.Добавить(Сгенерировать); Компилировать = ТФ.ЭлементМеню(); Компилировать.Заголовок = "Компилировать"; Компилировать.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Компилировать); Инструменты.Элементы.Добавить(Компилировать); Макросы = ТФ.ПунктМеню(); Макросы.Заголовок = "Мак_росы"; Макросы.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Макросы); ПанельМеню2.ПодМеню.Добавить(Макросы); НачатьЗапись = ТФ.ЭлементМеню(); НачатьЗапись.Заголовок = "Начать запись"; НачатьЗапись.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", НачатьЗапись); Макросы.Элементы.Добавить(НачатьЗапись); ОстановитьЗапись = ТФ.ЭлементМеню(); ОстановитьЗапись.Заголовок = "Остановить запись"; ОстановитьЗапись.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", ОстановитьЗапись); Макросы.Элементы.Добавить(ОстановитьЗапись); Запуск = ТФ.ПунктМеню(); Запуск.Заголовок = "З_апуск"; Запуск.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Запуск); ПанельМеню2.ПодМеню.Добавить(Запуск); Запустить = ТФ.ЭлементМеню(); Запустить.Заголовок = "Запустить"; Запустить.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Запустить); Запуск.Элементы.Добавить(Запустить); НаПервыйЭкран = ТФ.ПунктМеню(); НаПервыйЭкран.Заголовок = "НаПервыйЭкран"; НаПервыйЭкран.Нажатие = ТФ.Действие(ЭтотОбъект, "ПерейтиНаПервыйЭкран", НаПервыйЭкран); ПанельМеню2.ПодМеню.Добавить(НаПервыйЭкран); КонецПроцедуры Процедура СоздатьПанельМенюДляПервогоЭкрана() Экспорт ПанельМеню1 = ТФ.ПанельМеню(); ПанельМеню1.Клавиша = ТФ.Клавиши.F9 + ТФ.Клавиши.CtrlMask; // F9 + Ctrl ПервыйЭкран.Добавить(ПанельМеню1); Файл = ТФ.ПунктМеню(); Файл.Заголовок = "_Файл"; Файл.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Файл); ПанельМеню1.ПодМеню.Добавить(Файл); Открыть = ТФ.ЭлементМеню(); Открыть.Заголовок = "_Открыть"; Открыть.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Открыть); Файл.Элементы.Добавить(Открыть); Выход = ТФ.ЭлементМеню(); Выход.Заголовок = "В_ыход"; Выход.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Выход); Файл.Элементы.Добавить(Выход); //================================================ Правка = ТФ.ПунктМеню(); Правка.Заголовок = "П_равка"; Правка.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Правка); ПанельМеню1.ПодМеню.Добавить(Правка); Отмена = ТФ.ЭлементМеню(); Отмена.Заголовок = "Отмена"; Отмена.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Отмена); Правка.Элементы.Добавить(Отмена); Повтор = ТФ.ЭлементМеню(); Повтор.Заголовок = "Повтор"; Повтор.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Повтор); Правка.Элементы.Добавить(Повтор); //================================================ Поиск = ТФ.ПунктМеню(); Поиск.Заголовок = "По_иск"; Поиск.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Поиск); ПанельМеню1.ПодМеню.Добавить(Поиск); ИскатьДалее = ТФ.ЭлементМеню(); ИскатьДалее.Заголовок = "Искать_Далее"; ИскатьДалее.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", ИскатьДалее); Поиск.Элементы.Добавить(ИскатьДалее); ИскатьРанее = ТФ.ЭлементМеню(); ИскатьРанее.Заголовок = "Искать_Ранее"; ИскатьРанее.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", ИскатьРанее); Поиск.Элементы.Добавить(ИскатьРанее); //================================================ НаВторойЭкран = ТФ.ПунктМеню(); НаВторойЭкран.Заголовок = "ПерейтиНаВторойЭкран"; НаВторойЭкран.Нажатие = ТФ.Действие(ЭтотОбъект, "ПерейтиНаВторойЭкран", НаВторойЭкран); ПанельМеню1.ПодМеню.Добавить(НаВторойЭкран); КонецПроцедуры Процедура СоздатьОкноДляПервогоЭкрана() Экспорт Окно1 = ТФ.Окно(); Окно1.Заголовок = "Окно первого экрана"; ТекстОкна1 = " После запуска приложения был автоматически создан элемент ""Верхний"". Он является элементом верхнего уровня " + "и в нем мы будем создавать подэлементы интерфейса. Элемент ""Верхний"" доступен через свойство ""ТФ.Верхний"". | Далее создадим два окна-экрана (назовем их условно ПервыйЭкран, ВторойЭкран). Это будут два элемента ""Верхний"". В каждом из них " + "разместим по окну. | У каждого экрана создадим панель меню и назначим этим панелям меню одно и то же сочетание клавиш для активации - ""F9 + Ctrl"" " + "через свойство ""ПанельМеню.Клавиша (MenuBar.Key)"". Так же остается по умолчанию клавиша ""Alt"" для активации панели меню. | Если панель меню активирована, то пункты меню можно вызывать-раскрывать клавишей, назначенной через свойство ""КлавишаВызова (HotKey)"". | Вот так можно организовать работу приложения с несколькими экранами для каждого из которых задана своя панель меню. | Длинное число в событиях - это текущее время в миллисекундах. | Нажмите ""a"" или ""z"" |================================================================ |"; Окно1.Текст = ТекстОкна1; Окно1.Заполнить(); ПервыйЭкран.Добавить(Окно1); КонецПроцедуры Процедура СоздатьОкноДляВторогоЭкрана() Экспорт Окно2 = ТФ.Окно(); Окно2.Заголовок = "Окно второго экрана"; ТекстОкна2 = "Это Окно2 | Нажмите ""s"" или ""x"" |================================================================ |"; Окно2.Текст = ТекстОкна2; Окно2.Заполнить(); ВторойЭкран.Добавить(Окно2); КонецПроцедуры ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptTerminalGui\OneScriptTerminalGui\bin\Debug\OneScriptTerminalGui.dll"); ТФ = Новый ТерминалФормыДляОдноСкрипта(); ПервыйЭкран = ТФ.Верхний(); ПервыйЭкран.Заполнить(); ТФ.Верхний.Добавить(ПервыйЭкран); СоздатьПанельМенюДляПервогоЭкрана(); СоздатьОкноДляПервогоЭкрана(); ВторойЭкран = ТФ.Верхний(); ВторойЭкран.Заполнить(); ТФ.Верхний.Добавить(ВторойЭкран); СоздатьПанельМенюДляВторогоЭкрана(); СоздатьОкноДляВторогоЭкрана(); ВторойЭкран.Доступность = Ложь; ВторойЭкран.Отображать = Ложь; ПервыйЭкран.Доступность = Истина; ПервыйЭкран.Отображать = Истина; Макросы.ДобавитьСочетаниеКлавиш(ТФ.Клавиши.s_low); Макросы.ДобавитьСочетаниеКлавиш(ТФ.Клавиши.x_low); Правка.ДобавитьСочетаниеКлавиш(ТФ.Клавиши.a_low); Правка.ДобавитьСочетаниеКлавиш(ТФ.Клавиши.z_low); Правка.СочетаниеКлавишДействие = ТФ.Действие(ЭтотОбъект, "СочетаниеКлавишДействие", Правка); Макросы.СочетаниеКлавишДействие = ТФ.Действие(ЭтотОбъект, "СочетаниеКлавишДействие", Макросы); ТФ.Запуск();

Смотрите также

Библиотека OneScriptTerminalGui