|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Формы как объекты. Объект FSOНаиболее часто формы используются для создания интерфейса приложения, но они также являются объектами, которые можно вызывать из других модулей приложения. Формы тесно связаны с модулями классов. Главное различие между ними заключается в том, что формы могут быть видимыми объектами, тогда как модули не имеют видимого интерфейса. Добавление разработанных пользователем методов и свойств Можно добавлять разработанные методы и свойства к формам и обращаться к ним из других модулей в приложении. Чтобы создать новый метод для формы, следует объявить процедуру с ключевым словом public: ' Пользовательский метод на Form1 Public Sub LateJobsCountO . ' <операторы> End Sub Процедуру LateJobsCount можно вызвать из другого модуля оператором: Form1.LateJobsCount Создать новое свойство так же просто, как объявить открытую переменную в модуле формы: Public IDNumber As Integer Можно устанавливать и возвращать значение свойства IDNumber формы Form1 из других модулей двумя операторами: Form1.IDNumber = 3 Textl.Text = Form1.IDNumber Можно также использовать процедуры property (Свойство) для добавления разработанных свойств к форме. Примечание Можно обратиться к переменной, разработанному методу или установить значение разработанного свойства формы без ее загрузки. Это позволяет выполнить код на форме без загрузки ее в память. Точно так же ссылка на элемент управления без ссылки на какое-то из его свойств или методов не загружает форму. Ключевое слово New Ключевое слово New применяется для создания нового объекта в соответствии с его определением в своем классе. Его можно применять для создания экземпляров форм, классов, определенных в модулях классов, и наборов. Использование ключевого слова New с формами Каждая создаваемая во время разработки форма является классом. С помощью ключевого слова New можно создавать новые экземпляры этого класса. Чтобы увидеть, как это делается, создадим кнопку управления и несколько других элементов управления на форме. В окне Properties присвоим свойству Name формы значение sample. Добавим следующий код в процедуру обработки события click кнопки управления: Dim x As sample Set x = New sample х. Show Запустим приложение и щелкнем несколько раз кнопкой мыши на кнопке управления. Передвинем первую форму в сторону. Так как форма является классом с видимым интерфейсом, мы увидим дополнительные копии. Каждая форма имеет те же самые элементы управления, что и форма во время разработки. Чтобы сделать форму переменной и сохранять экземпляр загруженной формы, следует использовать переменные Static (Статический) или Public (Открытый) вместо локальных переменных. Использование ключевого слова New другими объектами Ключевое слово New используется для создания наборов и объектов классов, определенных в модулях классов. Рассмотрим пример, демонстрирующий создание экземпляров класса с помощью ключевого слова New. Откроем новый проект и создадим кнопку управления на форме Form1. Выполним команду Add Class Module (Добавить модуль класса) меню Project для добавления модуля класса в проект. Установим значение свойства Name модуля класса в showMe. Следующий код в модуле Form1 создает новый образец класса ShowMe и вызывает процедуру, содержащуюся в модуле класса: Public cisNew As ShowMe Private Sub Commandl Click() Set cisNew = New ShowMe cisNew.ShowFrm End Sub Процедура ShowFrm в модуле класса создает новый образец класса sample и показывает ее: Sub ShowFrm() Dim frmNew As sample Set frmNew = New sample frmNew.Show End Sub Запустим приложение и щелкнем кнопкой мыши несколько раз на кнопке управления. Получаем эффект, как в предыдущем примере, но ключевое слово New использовалось для создания класса. Ограничения на использование ключевого слова New С ключевым словом New нельзя: Объявлять переменные основного типа данных, например: Dim x As New Integer Объявлять переменные любого родового объекта, например: Dim x As New Control Объявлять переменные типа для любого конкретного элемента управления, например: Dim X As New ListBox Объявлять переменные для любого конкретного элемента управления, например: Dim X As New IstNames. Освобождение ссылок на объекты Каждый объект использует память и системные ресурсы. Хорошим стилем программирования является освобождение этих ресурсов, когда объект больше не нужен. Этого можно добиться с помощью: Оператора unload (Выгрузить) для выгрузки формы или элемента управления из памяти Значения Nothing (Ничего) для освобождения ресурсов, используемых переменной для объекта. Следует присвоить значение Nothing переменной для объекта оператором Set. Передача объектов в процедуры В VBA можно передавать объекты в процедуры. В следующем примере предполагается, что на форме существует кнопка управления: Private Sub Commandl_Click() ' Вызов процедуры Demo sub и передача ей формы. Demo Form1 End Sub Private Sub Demo(x As Formi) ' Прижать вправо. x.Left = 0 End Sub Также можно передать объект через параметр по ссылке и затем внутри процедуры установить таким образом, чтобы он ссылался на новый объект. Откроем проект и введем в него вторую форму. Поместим на нее графическое окно. Для свойства Name объекта Form2 необходимо установить значение picture2, а для свойства Picture - имя файла иконки *.ico Процедура Form1_click обработки события вызывает процедуру GetPicture в форме Form2 и передает ей пустую картинку: Private Sub Form_Click() Form2.GetPicture Picture1 End Sub Процедура GetPicture в форме Form2 присваивает значение свойства Picture (Картинка) графического окна на форме Form2 пустой картинке на форме Form1: Private objX As PictureBox Public Sub GetPicture(x As PictureBox) ' Присваивает переданное графическое окно объектной переменной. Set objX = x ' Присваивает значение свойства Picture графическому окну на Formi objX.Picture = picture2.Picture End Sub Запустим это приложение и щелкнем кнопкой мыши на форме Form1. Увидим значок формы Form2 в графическом окне на форме Form1. Объектная модель FileSystemObject Объектная модель FileSystemObject представляет собой не иерархическую структуру объектов (классов), позволяющих получать информацию о файловой системе компьютера и выполнять различные операции с файлами и каталогами этой системы. Порядок использования объектной модели FileSystemObject, т.е. ее объектов с их свойствами и методами при программировании приложения следующий: Подключить к проекту библиотеку типов SCRRUN.DLL. Получить эту бибилотеку можно бесплатно на сайте Microsoft http://msdn.microsoft.com/scripting. Создать новый объект типа FileSystemObject стандартными методами (посредством New или CreateObject) Использовать его методы и свойства для получения необходимой информации, в том числе ссылок на другие (подчиненные) объекты модели. Соответственно, использовать методы и свойства подчиненных объектов модели. После завершения работы закрыть все использованные объекты, начиная с нижних в иерархии. Там где это необходимо использовать для закрытия объектов их методы, в прочих случаях использовать Set objvar=Nothing Объектная модель включает следующие классы (таблица 7.): Объектная модель Таблица 7.
Объект FileSystemObject обеспечивает доступ к файловой системе компьютера. Будучи объектом верхнего уровня объектной модели FileSystemObject является "точкой входа" в файловую систему компьютера. Только после его создания возможен доступ к другим объектам модели, их методам и свойствам (таблица 8.). Dim objFSO As FileSystemObject Set objFSO = CreateObject("Scripting.FileSystemObject") или Set objFSO = New FileSystemObject Объекты модели, метод и свойства Таблица 8.
Свойства объекта FileSystemObject (таблица 9.) Таблица 9.
Методы объекта FileSystemObject (таблица 10.): Таблица 10.
У каждого из прочих вышеперечисленных семейств и объектов имеются свои свойства и методы. Для ознакомления с ними следует обратиться к справочной литературе. Контрольные вопросы 1. Что такое объект модели VBA? Какие объекты существуют в VBA, и в каких алгоритмах могут применяться? 2. Что такое форма VBA? Как описывается форма в программах на языке VBA? 3. Какие существуют типы и методы объектов модели на языке VBA? Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.) |