Access 2002

Коллекция элементов управления


Класс FormResize поддерживает коллекцию объектов ControlResize, каждый из которых соответствует одному элементу управления формы. Когда вы присваиваете значение свойству Form объекта FormResize, код этого свойства формирует коллекцию Controls и применяет ее для работы с элементами управления формы. (Класс FormResize не может использовать встроенную коллекцию формы Controls, поскольку ему нужно хранить дополнительную информацию об элементах управления.) Каждый объект ControlResize содержит ссылку на соответствующий элемент управления формы. В этом контексте следует упомянуть об одной проблеме: если пользователь так сильно уменьшит форму, что подчиненная форма в ней не поместится, Access уничтожит элемент управления и позже, когда пользователь снова увеличит форму, создаст его повторно. Для Access это не имеет значения, а вот для нас оказалось большой проблемой. При детальном анализе FormResize класса вы обнаружите в нем несколько процедур, предназначенных для ее решения.

Оставшаяся часть работы класса FormResize посвящена индивидуальной обработке элементов управления. Если вам придется модифицировать наш код, лучше всего начать его анализ с процедур frm_Resize и frm_Load. Несколько процедур нашего класса представляют особый интерес.

О Процедура RescaleForm вызывается из обработчика события формы Resize, но может быть вызвана и из вашего кода (то есть она является общедоступным методом класса FormResize). Это процедура самого верхнего уровня, выполняющая масштабирование содержимого формы. Из нее вызывается процедура CheckAndFi xCoords, устанавливающая новые размеры формы в соответствии со свойствами Mi n/MaxWi dth и Min/MaxHeight, а затем вычисляется отношение текущего размера формы к исходному.

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