Чтение и установка свойств

Лабораторная работа

Работа с объектами

Переменные типа объект наряду со значениями хранят также свойства и методы. Большинство объектов представляют собой совершенно абстрактные вещи и могут создаваться только программным способом. Перед тем как проводить с объектом какие-либо манипуляции, его нужно создать.

Создайте форму, например, фКлиент. Вот пример кода VBA, в котором создается новый объект — экземпляр формы фКлиент.

Если запустить на выполнение эту программу, откроется экземпляр формы фКлиент и окно сообщения. Если щелкнуть на кнопке ОК, как окно сообщения, так и сама форма закроются.

Текст процедуры начинается с объявления переменной объекта с именем ф. Эта переменная имеет тип Form_фКлиент. В Access для каждой формы создается свой класс, носящий название Form_ИмяФормы.

По умолчанию в Access все создаваемые формы изначально являются скрытыми (т.е. невидимыми). В следующей строке процедуры свойству видимости Visible присваивается значение True, что приводит к отображению формы на экране.

Далее в программе следует инструкция MsgBox, отображающая окно сообщения. Не забывайте, что при открытии окна сообщения выполнение программы приостанавливается до тех пор, пока пользователь на него не отреагирует нажатием какой-либо кнопки.

После щелчка на кнопке ОК форма с экрана исчезает. Это происходит потому, что интерпретатор VBA уничтожил все переменные, объявленные в процедуре, после ее завершения. После того как переменная ф уничтожена, отображение соответствующей формы на экране прекращается.

Чтение и установка свойств

Свойства объекта описывают его текущее состояние. При создании объекта из класса всем его свойствам присваиваются некоторые значения. Программным путем можно извлечь значения всех свойств объекта, а также присвоить им новые. Вот пример процедуры, извлекающей текущие значения свойств объекта формы:

Если запустить эту процедуру в окне Immediate, на экран будет выведено следующее:

Для чтения значения любого свойства объекта нужно обратиться к имени объекта, дополненному через точку именем свойства:

имя_объекта.имя_свойства

Эту переменную можно использовать для извлечения и присвоения значения, а также для передачи аргумента некоторой процедуре.

В данном случае а полоса перехода между записями (свойство RecordSelectors), расположенная на левой границе окна, включена.

Для изменения свойства ему просто нужно присвоить новое значение, используя очень похожий синтаксис:

Вызов методов

Действия, которые может выполнять объект, называют его методами. Для вызова метода используется синтаксис, аналогичный установке свойств объекта. Имя метода отделяется от имени объекта символом точки. Вот пример вызова некоторых методов формы:

В этой процедуре вызывается метод Move (Перемещение) класса Form. Методы могут иметь свои аргументы, следующие при вызове после их названия, и разделенные запятыми. В данном случае при вызове метода Move было передано четыре аргумента:

первый аргумент указывает на новое положение верхнего левого угла окна по горизонтали (относительно верхнего левого угла рабочей области Access);

второй аргумент указывает на новое положение верхнего левого угла окна по вертикали (также относительно верхнего левого угла рабочей области Access);

третий и четвертый аргументы содержат новые ширину и высоту формы соответственно.

На рис показан результат запуска процедуры Метод. Окно формы сдвинулось к верхнему левому углу рабочей области приложения, а ее высота и ширина уменьшились.

Работа с коллекциями

Несколько объектов можно объединить в коллекции. Коллекцией называют объект специального типа, который содержит другие объекты. К примеру, Access создает собственную коллекцию открытых форм, и ее можно использовать в коде VBA. Коллекции наиболее полезны в операциях поиска конкретных экземпляров объектов, в них содержащихся.

Создайте три формы, например, фКлиент, фПоставщик и фСклад. Создайте в каждой из них хотя бы по одному элементу управления. В каждой из них создайте процедуру или ее заготовку.

Private Sub Form_Load()

 

End Sub

В панели проектов должен присутствовать список форм.

Вот один из способов перечисления объектов в коллекции:

Эта процедура начинает свою работу с открытия трех форм. Далее используется специальная конструкция, созданная именно для этих целей. Цикл For...Each проходит по всему содержимому коллекции, присваивая переменной ф ссылку на каждый из объектов, в нем содержащийся. При использовании конструкции For...Each переменная счетчика цикла должна иметь тип объекта соответствующего типа.

Объектная модель

Коллекции и все элементы, которые они содержат, организуются в объектную модель. Объектной моделью называют диаграмму, показывающую связь между отдельными объектами в приложении. Например, коллекция Forms содержит отдельные объекты Form. В свою очередь, каждый из объектов Form содержит коллекцию Controls (Элементы управления), в которой хранится набор объектов Control.

Вот небольшая процедура, использующая показанный выше фрагмент объектной модели:

В этой процедуре вложенные циклы For... Each проходят по двум уровням объектной модели — коллекции форм и коллекции элементов управления. В результате в список попадут имена всех элементов управления всех трех открытых форм.

События

События являются своего рода сигналами, которые система генерирует при возникновении определенных ситуаций. В частности, с командными кнопками связаны события Click, которые возникают при щелчке на кнопке пользователем.

Большинство профессиональных программистов избегают использования макросов (создаваемых мастерами). Вместо использования макросов в качестве реакции на события можно написать специальные фрагменты кода VBA, называемые процедурами обработки событий.

    Создайте кнопку на форме фКлиент для перехода на форму фСклад с помощью мастера. Зайдите в свойства кнопки и задайте имя кнСклад и подпись Склад. Найдите событие «Нажатие кнопки» и справа щелкните на кнопке с тремя точками. Вставьте в процедуру инструкцию открытия формы фСклад. Проверьте работу кнопки.

    В качестве имени события используется конструкция имяОбъекта_имяСобытия. Задать тело процедуры можно и в окне редактора VBE.

    Для выявления ошибок, возникающих при обработке событий, можно использовать такой код. При возникновении ошибки будет выводиться сообщение: Ошибка Номер ошибки Описание ошибки в кнСклад_Click.

 

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: