Как отловить событие изменения размеров формы?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Kom-off,
Через "ОбновлениеОтображения()" вряд-ли получится...
В явном виде отловить данное событие, скорее всего, нельзя.
Можно "по-извращаться" и сделать как-то так:
Через "ОбновлениеОтображения()" вряд-ли получится...
В явном виде отловить данное событие, скорее всего, нельзя.
Можно "по-извращаться" и сделать как-то так:
Перем мШирина;
Перем мВысота;
Процедура ПриОткрытии()
мШирина = ЭтаФорма.Ширина;
мВысота = ЭтаФорма.Высота;
ПодключитьОбработчикОжидания("ПроверитьРазмерФормы",1,Ложь);
КонецПроцедуры
Процедура ПроверитьРазмерФормы()
лпРазмерИзменился = Ложь;
Если мШирина <> ЭтаФорма.Ширина Тогда
Сообщить("Изменилась ширина!" + Символы.ПС + "старое значение: <" + мШирина + "> новое: <" + ЭтаФорма.Ширина + ">");
лпРазмерИзменился = Истина;
КонецЕсли;
Если мВысота <> ЭтаФорма.Высота Тогда
Сообщить("Изменилась высота!" + Символы.ПС + "старое значение: <" + мВысота + "> новое: <" + ЭтаФорма.Высота + ">");
лпРазмерИзменился = Истина;
КонецЕсли;
Если лпРазмерИзменился Тогда
мШирина = ЭтаФорма.Ширина;
мВысота = ЭтаФорма.Высота;
КонецЕсли;
КонецПроцедуры
Показать
(6) Skyrim, как вариант, замени кнопку полем HTML, например.
Тут же еще в чем нюанс может быть...
Форма, открытая на весь экран в разрешении 1024 на 768 и та же форма, но 340 на 280, например, и в первом и во втором случае занимают весь экран. И как тут определять размер шрифта?
Еще в голову пришла полудурацкая идея - если есть таб. часть в форме, то сделать "при получении данных".
Тут же еще в чем нюанс может быть...
Форма, открытая на весь экран в разрешении 1024 на 768 и та же форма, но 340 на 280, например, и в первом и во втором случае занимают весь экран. И как тут определять размер шрифта?
Еще в голову пришла полудурацкая идея - если есть таб. часть в форме, то сделать "при получении данных".
Проверил, в (7) работает, если в таб. части будет хотя бы одна строка.
Рабочий вариант - добавить на форму табличное поле, сделать все его элементы цвета формы, убрать полосы прокрутки и рамку, программно при открытии добавить строку, и все - события при изменении ширины высоты формы будут ловиться, а пользователю это окошко видно не будет. Вариант со сверткой элемента или его невидимостью не рассматривал.
готовый код:
Рабочий вариант - добавить на форму табличное поле, сделать все его элементы цвета формы, убрать полосы прокрутки и рамку, программно при открытии добавить строку, и все - события при изменении ширины высоты формы будут ловиться, а пользователю это окошко видно не будет. Вариант со сверткой элемента или его невидимостью не рассматривал.
готовый код:
Процедура ПриОткрытии()
ТП.Добавить();
КонецПроцедуры
Процедура ТППриПолученииДанных(Элемент, ОформленияСтрок)
Сообщить("Высота " + Высота + "; Ширина " + Ширина);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот