Как отловить событие изменения размеров формы?

1. Skyrim 05.11.12 04:17 Сейчас в теме
Как отловить событие изменения размеров формы?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Kom-off 05.11.12 11:44 Сейчас в теме
(1) Попробуй через ОбновлениеОтображения() с анализом размеров формы. Может и получится. Только стесняюсь спросить: а зачем? Вот, у меня пока еще не было такой необходимости.
4. fomaOp 05.11.12 12:07 Сейчас в теме
(3) Kom-off,
Через "ОбновлениеОтображения()" вряд-ли получится...
В явном виде отловить данное событие, скорее всего, нельзя.
Можно "по-извращаться" и сделать как-то так:

Перем мШирина; 
Перем мВысота;

Процедура ПриОткрытии()
	
	мШирина = ЭтаФорма.Ширина;
	мВысота = ЭтаФорма.Высота;
		
	ПодключитьОбработчикОжидания("ПроверитьРазмерФормы",1,Ложь);		
	
КонецПроцедуры

Процедура ПроверитьРазмерФормы()
	
	лпРазмерИзменился = Ложь;
	Если мШирина <> ЭтаФорма.Ширина Тогда
		Сообщить("Изменилась ширина!" + Символы.ПС + "старое значение: <" + мШирина + "> новое: <" + ЭтаФорма.Ширина + ">");
		лпРазмерИзменился = Истина;
	КонецЕсли;
	
	Если мВысота <> ЭтаФорма.Высота Тогда
		Сообщить("Изменилась высота!" + Символы.ПС + "старое значение: <" + мВысота + "> новое: <" + ЭтаФорма.Высота + ">");
		лпРазмерИзменился = Истина;
	КонецЕсли;
	
	Если лпРазмерИзменился Тогда		
		мШирина = ЭтаФорма.Ширина;
		мВысота = ЭтаФорма.Высота;
	КонецЕсли;
	
КонецПроцедуры
Показать
D.B.Sokolov; user1069316; adhocprog; Skyrim; Kom-off; +5 Ответить
5. Kom-off 05.11.12 15:26 Сейчас в теме
(4) Да, действительно, посмотрел, ОбновлениеОтображения() не работает.
9. user1069316 25.03.24 12:06 Сейчас в теме
(4) Хорошая идея. Как раз таки на этом механизме только что реализовал перегрузку картинки в поле html документа. Спасибо. Вроде норм работает.
6. Skyrim 05.11.12 15:50 Сейчас в теме
(3) Kom-off, делаю интерфейс кассира и хочу чтобы при изменении размеров формы(при изменении разрешения) размер шрифта текста кнопки подгонялся под размеры кнопки, а не оставался статическим.
7. axelerleo 343 05.11.12 16:26 Сейчас в теме
(6) Skyrim, как вариант, замени кнопку полем HTML, например.
Тут же еще в чем нюанс может быть...
Форма, открытая на весь экран в разрешении 1024 на 768 и та же форма, но 340 на 280, например, и в первом и во втором случае занимают весь экран. И как тут определять размер шрифта?
Еще в голову пришла полудурацкая идея - если есть таб. часть в форме, то сделать "при получении данных".
8. axelerleo 343 05.11.12 16:33 Сейчас в теме
Проверил, в (7) работает, если в таб. части будет хотя бы одна строка.
Рабочий вариант - добавить на форму табличное поле, сделать все его элементы цвета формы, убрать полосы прокрутки и рамку, программно при открытии добавить строку, и все - события при изменении ширины высоты формы будут ловиться, а пользователю это окошко видно не будет. Вариант со сверткой элемента или его невидимостью не рассматривал.

готовый код:
Процедура ПриОткрытии()
	
	ТП.Добавить();
	
КонецПроцедуры

Процедура ТППриПолученииДанных(Элемент, ОформленияСтрок)
	Сообщить("Высота " + Высота + "; Ширина " + Ширина);
КонецПроцедуры
Показать
2. wirg 05.11.12 10:08 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот