АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Формы как объекты. Объект FSO

Читайте также:
  1. A) жеке объектілер
  2. II. Оценка располагаемых водных ресурсов объекта.
  3. II. Создание многотабличной пользовательской формы.
  4. АПК России. Аграрная реформа в РФ и ее влияние на аграрный сектор хозяйства. Новые формы собственности на землю и новые формы хозяйствования.
  5. Аспекты ликвидации объектов и отходов
  6. Безналичные расчеты предприятий: формы, способы, применяемые расчетные документы.
  7. В 3. Организационно-правовые формы бизнеса. Фирма.
  8. В анализе объектов окружающей среды
  9. В итоге если все частицы собрать по правильной и проверенной технологии, получится красивая, эстетичная, экологичная и практичная столешница GraniStone любой формы и размеров.
  10. Власть и формы ее осуществления в первобытном обществе.
  11. Влияние формы импульса возбуждения
  12. Внешнеэкономические связи России: формы , динамика структуры и география внешнеторговой деятельности.

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

Добавление разработанных пользователем методов и свойств

Можно добавлять разработанные методы и свойства к формам и обращаться к ним из других модулей в приложении. Чтобы создать новый метод для формы, следует объявить процедуру с ключевым словом 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 Обеспечивает доступ к файловой системе компьютера.
Drives Cодержит объекты Drive, каждый из которых ассоциируется ровно с одним диском в файловой системе компьютера, с учетом сети.
Drive Обеспечивает доступ к информации о заданном диске компьютера002E
Folders Семейство Folders содержит объекты Folder, каждый из которых ассоциируется ровно с одним подкаталогом заданного каталога.
Folder Обеспечивает доступ к информации о заданной папке, содержащимся в ней папках и каталогах, а также методы перемещения папки и создания текстового файла.
Files Семейство Files содержит все объекты File, каждый из которых ассоциируется ровно с одним файлом в заданной папке.
File Обеспечивает доступ к информации о заданном файле, методы перемещения файла и открытия текстового файла в режиме последовательного доступа.
TextStream Обеспечивает проведение операций чтения/записи для текстового файла открытого в режиме последовательного доступа.

Объект FileSystemObject обеспечивает доступ к файловой системе компьютера. Будучи объектом верхнего уровня объектной модели FileSystemObject является "точкой входа" в файловую систему компьютера. Только после его создания возможен доступ к другим объектам модели, их методам и свойствам (таблица 8.).

Dim objFSO As FileSystemObject

Set objFSO = CreateObject("Scripting.FileSystemObject")

или

Set objFSO = New FileSystemObject

Объекты модели, метод и свойства

Таблица 8.

Элемент Тип данных Тип данных
objFSO FileSystemObject Идентификатор (имя) объекта FileSystemObject

 

Свойства объекта FileSystemObject (таблица 9.)

Таблица 9.

Свойство Тип данных Чтение/запись Описание
Drives Drives Только чтение Содержит ссылку на семейство Drives, содержащую объекты для каждого устройства дисковой памяти компьютера

 

Методы объекта FileSystemObject (таблица 10.):

Таблица 10.

Метод Назначение
BuildPath Создание строки путем слияния аргументов и добавления между ними, если его нет, разделителя "\" (обратной косой черты).
CopyFile Копирование одного или нескольких файлов из одной папки в другую.
CopyFolder Копирование содержимого папки со всеми содержащимися в ней папками (подкаталогами) в заданное место.
CreateFolder Создание новой папки с заданным именем.
CreateTextFile Создание файла и открытие его в режиме текстового файла последовательного доступа для записи как объекта TextStream
DeleteFile Удаление одного или нескольких заданных файлов.
DeleteFolder Удаление одной или нескольких заданных папок вместе со всем их содержимым.
DriveExists Проверка существования диска с заданным именем на локальной машине или в сети.
FileExists Проверка существования файла с заданным именем на локальной машине или в сети.
FolderExists Проверка существования папки с заданным именем на локальной машине или в сети
GetAbsolutePathName Получение полного имени файла или папки по относительному имени.
GetBaseName Получение поcледнего компонента - имени папки или файла (без расширения) по его полному или относительному имени.
GetDrive Получение ссылки на объект Drive, связанный с заданным диском.
GetDriveName Получение имени диска из имени папки или файла.
GetExtensionName Получение расширения из заданного имени файла.
GetFile Получение ссылки на объект File, связанный с заданным файлом.
GetFileName Получение имени (с расширением) файла из полного имени (пути) файла.
GetFolder Получение ссылки на объект Folder, связанный с заданной папкой.
GetParentFolderName Получение имени папки, являющейся предпоследним компонентом полного имени (пути) файла или папки.
GetSpecialFolder Получение ссылки на объект Folder, связанный с одной из трех специальных папок - папки Windows, системной папки и папки временных файлов.
GetTempName Получение имени для временного файла.
MoveFile Перемещение одного или нескольких файлов из одной папки в другую.
MoveFolder Перемещение содержимого папки со всеми содержащимися в ней папками (подкаталогами) в заданное место.
OpenTextFile Открытие файла как объекта TextStream для проведения операций чтения/записи в режиме последовательного доступа.

 

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

Контрольные вопросы

1. Что такое объект модели VBA? Какие объекты существуют в VBA, и в каких алгоритмах могут применяться?

2. Что такое форма VBA? Как описывается форма в программах на языке VBA?

3. Какие существуют типы и методы объектов модели на языке VBA?


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.)