Access 2002

Масштабирование содержимого формы


Масштабирование размеров и координат формы — это только поддела. Стоит ли с этим возиться, если элементы формы окажутся неразличимыми или, наоборот, слишком большими? Нам нужно изменить размеры и координаты всех элементов

управления формы. Эту работу выполняет процедура ScaleFormContents. Она вызывается не только при загрузке формы, но и тогда, когда пользователь вручную изменяет ее размеры. Для этого процедура ScaleFormContents присоединяется к событию формы Resize. В цикле по всем элементам управления формы она умножает их координаты и размеры на коэффициенты, полученные путем деления исходных координат и размеров формы на новые. Обратите  на то, что это не имеет никакого отношения к изменению разрешения экрана: просто пользователь изменил размер формы, а вместе с ней должны увеличиться или уменьшиться все ее элементы.

Если перевести форму из режима конструктора в режим формы, она «сожмется» из-за того, что была создана при большем разрешении, a Access не обновит экран так, как нужно. В такой ситуации мы рекомендуем закрыть форму и открыть ее снова в режиме формы.

Масштабирование элементов управления

Теоретически процедура ScaleFormContents просто проходит цикл по всем элементам управления формы и умножает их координаты и размеры на коэффициенты, заданные при ее вызове. Однако на практике ее работа несколько сложнее.

О Существенен порядок масштабирования элементов управления. Если форма увеличивается, ее разделы должны быть увеличены до того, как будут увеличены содержащиеся в них элементы управления. Иначе увеличенные элементы управления «растянут» разделы формы, которые после увеличения приобретут не тот размер, которого мы добивались. Уменьшение объектов осуществляется в обратном порядке: сначала сжимаются элементы управления, а потом разделы. Иначе элементы управления будут сдвинуты со своих мест.

Комментарии закрыты