Class Browser
Class Browser
Еще одним способом размещения в форме объектов внешней библиотеки классов является применение средства Class Browser (Обзор классов). Для открытия окна Class Browser (Обзор классов) (рис. 16.7) выполните команду Class Browser (Обзор классов) из меню Tools (Сервис) или нажмите одноименную кнопку на стандартной панели инструментов.
Документ Microsoft Word
Документ Microsoft Word
На вторую вкладку формы поместим объект для работы с документ Microsoft Word (рис. 16.15), используя кнопку Документ Microsoft Word на панели инструментов Form Controls (Элементы управления формы).
Для редактирования объекта типа Документ Microsoft Word вы также можете использовать команды Изменить и Открыть контекстного меню. на рис. 16.16 приведен режим редактирования по месту.
Электронная таблица
Электронная таблица
На первую вкладку формы поместим электронную таблицу Excel (рис. 16.12), используя кнопку Лист Microsoft Excel на панели инструментов Form Controls (Элементы управления формы).
Для редактирования электронной таблицы используется конструктор. Чтобы его запустить, необходимо выполнить следующие действия:
Выделите в форме электронную таблицу.Библиотеки классов и ActiveX-компоненты
Глава 16. Библиотеки классов и ActiveX-компоненты
Использование библиотек классов Панель инструментов Form Controls Использование библиотеки классов Галереи компонентов Class Browser Использование ActiveX-компонентов в форме Отображение ActiveX-компонентов на панели инструментов Form Controls Размещение ActiveX-компонентов в форме Связь ActiveX-компонентов с базой данных Использование в форме календаря Использование браузера объектов
Использование ActiveX-компонентов в форме
Использование ActiveX-компонентов в форме
Компоненты ActiveX представляют собой 32-разрядные объекты, содержащие код и данные. В отличие от библиотек классов Visual FoxPro, ActiveX-компоненты могут создаваться с помощью различных средств разработки, например Visual C++ или Visual Basic. Вы можете использовать ActiveX-компоненты аналогично базовым компонентам Visual FoxPro. Основным преимуществом данных компонентов является их огромное количество, так как их разработкой занимаются многие фирмы, а также отдельные программисты. Часть этих компонентов является коммерческой продукцией, часть распространяется бесплатно. Множество компонентов включено в поставку Visual Studio и в приложение Microsoft Office. Для поиска необходимых компонентов вы можете использовать Интернет.
Для формирования списка используемых при разработке ActiveX-компонентов необходимо воспользоваться диалоговым окном Options (Параметры), выполнив следующие действия:
Выберите в меню Tools (Сервис) команду Options (Параметры). В диалоговом окне Options (Параметры) выберите вкладку Controls (Элементы управления). Установите опцию ActiveX controls (Элементы управления ActiveX). При этом в списке Selected (Выбранные) будет отображен список всех доступных на вашем компьютере ActiveX-компонентов.Использование библиотек классов
Использование библиотек классов
В предыдущих главах мы рассмотрели использование стандартных элементов, которые представляют лишь небольшую часть доступных элементов управления. Множество разнообразных элементов управления находится в библиотеках классов, объединенных общим названием Visual FoxPro Foundation Classes, которые входят в комплект поставки Visual FoxPro. Кроме библиотеки Foundation Classes, вы можете также использовать библиотеки классов, которые разрабатывают сторонние фирмы.
В последнее время широкое распространение получают ActiveX-компоненты, которые представляют собой полнофункциональные элементы управления. Вы можете размещать их так же, как и обычные элементы управления, задавать свойства и обрабатывать события.
В процессе разработки приложения вы можете создавать свои библиотеки классов и размещать в форме собственные элементы управления.
Применение внешних библиотек классов не только облегчает разработку приложения, но и ускоряет процесс. Для размещения в форме объектов библиотек вы можете использовать панель инструментов Form Controls (Элементы управления формы), Гатерею компонентов и Class Browser (Обзор классов).
Использование библиотеки классов Галереи компонентов
Использование библиотеки классов Галереи компонентов
Галерея компонентов Visual FoxPro содержит библиотеки классов Foundation Classes (рис. 16.5), которые размещены в одноименном каталоге.
Для размещения объекта выбранного класса в форме вы можете выполнить любое из приведенных ниже действий.
Выделить класс в окне Галереи компонентов и перенести в требуемое место формы, используя механизм "перенести-и-оставить". Щелкнуть правой кнопкой мыши на классе и из контекстного меню выбрать команду Add to Form (Добавить в форму) (рис. 16.6). Выделить класс в окне Галереи компонентов, щелкнуть на значке Move (Перенести), расположенном в левом верхнем углу окна, и перенести его в требуемое место формы.Использование браузера объектов
Использование браузера объектов
В Visual FoxPro имеется средство для просмотра списка классов, свойств, методов, событий и констант библиотек СОМ-объектов или ActiveX-компонентов — Object Browser (Браузер объектов). В окне браузера (рис. 16.28) можно выполнять поиск заданного значения в пределах библиотеки.
Использование календаря для ввода информации в поля дат
Использование календаря для ввода информации в поля дат
Мы рассмотрели свойства календаря. Теперь посмотрим, как можно использовать данный ActiveX-компонент для ввода информации в поля таблицы содержащие даты. В качестве примера создадим форму для ввода информации о сотрудниках фирмы. Исходная таблица Manager содержит поле dDateBirth с информацией о дате рождения сотрудника. Информацию в это поле будем вводить с помощью ActiveX-компонента Календарь.
Чтобы создать форму, выполните следующие действия:
В проекте sales откройте окно конструктора. В окружение формы добавьте таблицу, содержащую список сотрудников. Разместите в форме необходимые для ввода информации поля таблицы. Откройте окно свойств Properties (Свойства) поля, предназначенного для ввода даты рождения сотрудника. Используя свойство Name (Имя), присвойте объекту наименование txtBirthday. Используя свойство controisource (Источник данных), задайте в качестве источника данных поля для ввода даты рождения поле dDateBirth таблицы.Использование в форме календаря
Использование в форме календаря
Календарь также является одним из ActiveX-компонентов. Вы можете пс пользовать его для ввода информации в поля дат.
Сначала разместим календарь в форме, чтобы посмотреть свойства, кот ори ми обладает данный объект, и возможности их настройки. Затем рассмотрим пример программного использования календаря для ввода даты.
Настройка свойств календаря
Настройка свойств календаря
Чтобы разместить в форме календарь, который на панели инструментов Form Controls
Отображение ActiveX-компонентов на панели инструментов Form Controls
Отображение ActiveX-компонентов на панели инструментов Form Controls
Для отображения ActiveX-компонентов на панели инструментов Form Controls (Элементы управления формы) при создании форм выполните следующие действия:
Нажмите кнопку View Classes (Просмотр классов) на панели инструментов Form Controls (Элементы управления формы), в результате чего на экране появится меню кнопки.
Панель инструментов Form Controls
Панель инструментов Form Controls
Чтобы использовать панель инструментов Form Controls (Элементы управления формы), вы должны разместить на ней объекты внешней библиотеки. Для этого выполните следующие действия:
Нажмите кнопку View Classes (Просмотр классов) Замечание
Замечание
Файлы библиотек классов имеют расширение VCX.
Работа с ActiveX-компонентами после запуска формы на выполнение
Работа с ActiveX-компонентами после запуска формы на выполнение
При запуске формы, содержащей ActiveX-компоненты, они активизируются. Поведение ActiveX-компонентов определяется заданными для них алгоритмами управления. Например, для редактирования информации в электронной таблице достаточно дважды щелкнуть на объекте (рис. 16.17).
Размещение ActiveX-компонентов в форме
Размещение ActiveX-компонентов в форме
Рассмотрим пример создания формы, содержащей две вкладки, на которых разместим такие ActiveX-компоненты, как электронная таблица и документ Microsoft Word. Для создания формы выполните следующие действия:
Откройте проект sales.
Выберите вкладку Documents (Документы), перейдите в группу Forms (Формы), а затем нажмите кнопку New (Новый).
В открывшемся диалоговом окне New Form (Новая форма) выберите опцию New Form (Новая форма). Откроется окно конструктора форм.
Нажмите кнопку View Classes (Просмотр классов) на панели инструментов Form Controls (Элементы управления формы), в результате чего на экране появится меню данной кнопки, содержащее команды выбора библиотеки из ранее размещенных на панели инструментов ActiveX-компонентов и добавления новой библиотеки.
Выберите значение Standard (Стандартная). Это необходимо, чтобы на панели инструментов Form Controls (Элементы управления формы) были размещены стандартные элементы управления.
Разместите в форме объект Page Frame (Вкладка), используя кнопку Page Frame (Вкладка) на панели инструментов Form Controls (Элементы управления формы).
Введите название формы, воспользовавшись свойством caption (Надпись).
Задайте для объекта Page Frame (Вкладка) две вкладки, используя свойство PageCount (Количество вкладок).
Используя свойство caption (Надпись) каждой вкладки, присвойте им названия (рис. 16.11).
Форма готова. Теперь можно разместить в ней ActiveX-компоненты. Для этого необходимо отобразить на панели инструментов элементов управления формы ActiveX-компоненты: нажмите кнопку View Classes (Просмотр классов) на панели инструментов Form Controls (Элементы управления формы).
Выберите из появившегося меню пункт ActiveX Controls (Элементы управления ActiveX).
Диалоговое окно Open для присоединения внешней библиотеки
Рис. 16.1. Диалоговое окно Open для присоединения внешней библиотеки
Замечание
Замечание
После выбора библиотеки классов нажмите кнопку View Classes (Просмотр классов) на панели инструментов Form Controls (Элементы управления формы). Обратите внимание на то, что в ее меню добавился пункт с выбранной вами библиотекой классов (в данном примере Buttons (Кнопки)).
Выберите пункт меню с наименованием добавленной вами библиотеки. На панели инструментов Form Controls (Элементы управления формы) будут размешены кнопки элементов управления выбранной библиотеки (рис. 16.2). Используя панель инструментов, вы теперь можете размешать эти объекты в форме так же, как и стандартные элементы управления.
Меню кнопки View Classes...
Рис. 16.2. Меню кнопки View Classes и панель инструментов, содержащая элементы управления внешней библиотеки
Библиотека Buttons (Кнопки) содержит набор кнопок, назначение которых описано в табл. 16.1.
Размещение объекта vcr в форме
Рис. 16.3. Размещение объекта vcr в форме
Форма с размещенным объектом vcr для перемещения по записям
Рис. 16.4. Форма с размещенным объектом vcr для перемещения по записям
Запустите форму на выполнение. Убедитесь в том, что используя размещенные для управления таблицей кнопки, можно перемещаться по записям таблицы (рис. 16.4).
Каталог Foundation Classes
Рис. 16.5. Каталог Foundation Classes
Использование контекстного меню для размещения объекта выбранного класса в форме
Рис. 16.6. Использование контекстного меню для размещения объекта выбранного класса в форме
Замечание
Замечание
Для некоторых классов определены построители, автоматически запускаемые при размещении их в форме.
Окно Class Browser
Рис. 16.7. Окно Class Browser
Для размещения в окне Class Browser (Обзор классов) библиотеки предназначены кнопки Open (Открыть)
Размещение в форме объектов из окна Class Browser
Рис. 16.8. Размещение в форме объектов из окна Class Browser
Вкладка Controls диалогового окна Options
Рис. 16.9. Вкладка Controls диалогового окна Options
Установите флажки рядом с теми объектами списка Selected, которые хотите разместить на панели инструментов Form Controls (Элементы управления формы) и использовать для размещения в форме (рис. 16.9). Нажмите кнопку ОК для закрытия диалогового окна Options (Параметры).
Замечание
Замечание
Кнопка Add (Добавить) вкладки Controls (Элементы управления) диалогового окна Options (Параметры) предназначена для добавления новых объектов в список Selected. При нажатии на данную кнопку открывается диалоговое окно Open (Открыть), используя которое можно выбрать файл с ActiveX-компонентами.
Панель инструментов, содержащая ActiveX-компоненты
Рис. 16.10. Панель инструментов, содержащая ActiveX-компоненты
Выберите команду ActiveX Controls (Элементы управления ActiveX) данного меню. На панели инструментов Form Controls (Элементы управления формы) будут размешены кнопки, содержащие значки выбранных вами ActiveX-компонентов в диалоговом окне Options (Параметры) (рис. 16.10). Теперь вы можете размещать данные объекты в форме обычным образом.
Форма с размещенным в ней объектом Page Frame
Рис. 16.11. Форма с размещенным в ней объектом Page Frame
Электронная таблица, размещенная на первой вкладке формы
Рис. 16.12. Электронная таблица, размещенная на первой вкладке формы
Редактирование электронной таблицы в Visual FoxPro
Рис. 16.13. Редактирование электронной таблицы в Visual FoxPro
В том случае, если вы выбираете пункт меню Открыть, запускается приложение Microsoft Excel и в нем открывается созданный вами лист электрон ной таблицы (рис. 16.14).
Редактирование электронной таблицы в отдельном приложении
Рис. 16.14. Редактирование электронной таблицы в отдельном приложении
Объект для работы с документом Microsoft Word
Рис. 16.15. Объект для работы с документом Microsoft Word
Редактирование документа Microsoft Word
Рис. 16.16. Редактирование документа Microsoft Word
Редактирование электронной таблицы
Рис. 16.17. Редактирование электронной таблицы
Форма с размещенным ActiveX-компонентом и объектом из библиотеки Samples
Рис. 16.18. Форма с размещенным ActiveX-компонентом и объектом из библиотеки Samples
Использование в форме...
Рис. 16.19. Использование в форме ActiveX-компонента для ввода форматированной информации в Memo-поле таблицы
Нажмите на панели инструментов Form Controls (Элементы управления формы) кнопку rtfcontrols (Элементы управления RTF) из библиотеки samples (Образцы) и разместите в форме элементы управления. В результате форма примет вид, представленный на рис. 16.18. Чтобы связать размещенное в форме поле с полем таблицы Customer откройте окно Properties (Свойства) и для свойства controisour (Источник данных) задайте поле mNotes. Для элементов управления RTF-объектом задайте методы, устанавливающие значения свойств объекта. Результат размещения в форме RTF-объекта приведен на рис. 16.19.
Форма с размещенным в ней календарем
Рис. 16.20. Форма с размещенным в ней календарем
Диалоговое окно Свойства: Календарь
Рис. 16.21. Диалоговое окно Свойства: Календарь
Вкладка Шрифт диалогового окна Свойства: Календарь
Рис. 16.22. Вкладка Шрифт диалогового окна Свойства: Календарь
Вкладка Цвет диалогового окна Свойства: Календарь
Рис. 16.23. Вкладка Цвет диалогового окна Свойства: Календарь
Вкладка Цвет (Color) окна свойств календаря (рис. 16.23) позволяет изменить цветовое оформление календаря. Список Свойства (Properties) содержит элементы календаря, для которых можно настроить цвета:
Backcolor — фон календаря; DayFontcolor — дни недели, расположенные в заголовке таблицы; GridFontCoior — числа, размещенные в таблице календаря; GridLinesCoior — линии сетки таблицы календаря; TitleFontcoior — месяц и год в заголовке календаря.С помощью списка Набор цветов (Color Set) можно установить используемую цветовую схему, а списка Цветовая палитра (Color Palette) — цвет выбранного из списка Свойства элемента.
При нажатии на кнопку Справка открывается окно справочной системы, содержащее список всех методов, свойств и событий ActiveX-KOMihuiviiia (рис. 16.24).
Список всех методов, свойств и событий ActiveX-комггаконм
Рис. 16.24. Список всех методов, свойств и событий ActiveX-комггаконм
Форма для ввода списка сотрудников
Рис. 16.25. Форма для ввода списка сотрудников
Рядом с полем, предназначенным для ввода даты рождения, расположите кнопку. Используя свойство caption (Надпись), присвойте кнопке название Календарь. Форма будет иметь вид, представленный на рис. 16.25. Откройте окно свойств Properties (Свойства) кнопки Календарь.
Окно процедур метода Click для кнопки Календарь
Рис. 16.26. Окно процедур метода Click для кнопки Календарь
В окне процедур свойства click (Нажатие) введите команды, которые программно формируют и задают свойства ActiveX-компонента календарь (рис. 16.26):
#DEFINE С CALCAFTIOK_LOC "Календарь"
oCalForm = Create('form1 )
oCalForm.NewObject("oleCalendar","_olecalendar","_datetime")
WITH oCalForm.oleCalendar
.date_column = "manager.ddatebirch"
.RefreshDisplay()
.BackColor = THISFORM.BackColor
.Visible = . T. ENDWITH WITH oCalForm
.BorderStyle - '.:
.MaxButton = .F.
.MinButton = .F.
.Height = oCalForm.oleCalendar.Height
.Width = oCalForm.oleCalendar.Width
.Caption = C__CALCAPTION_LOC ENDWITH
oCalForm.Show(1) THISFORM.Refresh
Создание формы завершено. Запустите ее на выполнение. Для ввода информации в поле дата рождения нажмите кнопку Календарь. На экране откроется календарь. Выберите необходимое число, месяц и год и закройте календарь. Указанная вами дата будет перенесена в поле дата рождения (рис. 16.27).
Использование ActiveX-компонента для ввода информации в таблицу
Рис. 16.27. Использование ActiveX-компонента для ввода информации в таблицу
Окно браузера объектов
Рис. 16.28. Окно браузера объектов
Для запуска браузера можно воспользоваться одним из следующих способов:
выполнить команду Object Browser (Браузер объектов) из меню lools (Сервис); нажать кнопку Object BrowserВкладка COM Libraries окна Open, предназначенная для выбора СОМ-библиотек
Рис. 16.29. Вкладка COM Libraries окна Open, предназначенная для выбора СОМ-библиотек
Object Browser содержит элементы управления, которые перечислены в табл. 16.4.
Поиск информации в Object Browser
Рис. 16.30. Поиск информации в Object Browser
Связь ActiveX-компонентов с базой данных
Связь ActiveX-компонентов с базой данных
В предыдущем разделе мы рассмотрели размещение в форме ActiveX-компонентов. Но форма предназначена в основном для работы с базой данных. Возникает вопрос, а как же использовать ActiveX-компоненты для работы с таблицами базы данных9 Связь ActiveX-компонентов с базой данных рассмотрим на примере RTF-объекта, который используется для ввода в Memo-поля таблицы форматированного текста. Чтобы создать форму с размещенным в ней RTF-объектом, будем использовать таблицу customer, содержащую Memo-поле mNotes с дополнительной информацией о клиенте. Для этого:
Добавьте на панель инструментов Form Controls (Элементы управления формы) кнопку Microsoft Rich TextBox Control (Элемент управления для редактирования текста в формате RTF). Для этого на вкладке Controls (Элементы управления) диалогового окна Options (Параметры) в списке Selected (Выбранные) установите флажок рядом со значением Microsoft Rich TextBox Control (Элемент управления для редактирования Замечание
Замечание
Присоединение внешних библиотек мы рассмотрели в начале данной главы.
Откройте проект sales (Продажи).
Откройте в конструкторе форму, позволяющую вводить информацию В таблицу Customer.
Удалите из формы поле, которое использовалось вами ранее для ввода информации в пое таблицы mNotes.
Чтобы отобразить на панели инструментов Form Controls (Элементы управления формы) кнопки для размещения в форме ActiveX-компонентов, нажмите кнопку View Classes (Просмотр классов) и в появившемся меню выберите команду ActiveX Controls (Элементы управления ActiveX).
Выберите на панели инструментов Form Controls (Элементы управления формы) кнопку Microsoft Rich TextBox Control (Элемент управления для редактирования текста в формате RTF) и разместите в форме поле, предназначенное для ввода примечания.
Чтобы можно было управлять созданным полем, необходимо поместить в форму элементы управления RTF-объектом. Для этого на панели инструментов Form Controls (Элементы управления формы) нажмите кнопку View Classes (Просмотр классов) и в появившемся меню кнопки выберите команду Samples (Образцы).
Назначение полей окна Свойства: Календарь
Таблица 16.2. Назначение полей окна Свойства: Календарь
Поле | Назначение |
Значение (Value) | Текущая дата |
Первый день недели (First Day) | День, принимаемый за первый день недели |
Формат дня (Day Length) | Формат отображения наименования дня недели; может принимать одно из трех значений: короткий, средний, длинный |
Формат месяца (Month Length) | Формат отображения наименования месяца; может принимать одно из двух значений: короткий и длинный |
Оформление (Grid Cell Effect) | Стиль отображения ячеек таблицы |
Область Отображение (Show) вкладки Общие (General) содержит флажки, описанные в табл. 16.3.
Назначение флажков области Отображение вкладки Общие
Таблица 16.3. Назначение флажков области Отображение вкладки Общие
Флажок | Назначение |
Заголовок месяца и года (Month/Year Title) | Указывает на необходимость отображения заголовка месяца и года |
Выбор месяца и года (Month/Year Selectors) | Указывает на необходимость размещения в заголовке полей для выбора месяца и года |
Дни недели (Days of Week) | Указывает на необходимость отображения в заголовке таблицы дней недели |
Сетка по горизонтали (Horizontal Grid) | Указывает на необходимость отображения в таблице горизонтальных линий сетки |
Сетка по вертикали (Vertical Grid) | Указывает на необходимость отображения в таблице вертикальных линий сетки |
При изменении любого из параметров вкладки становится доступной кнопка Применить, при нажатии на которую сохраняются введенные изменения.
Вкладка Шрифт (Font) окна свойств календаря (рис. 16.22) позволяет настроить шрифты объекта. Список Свойства (Properties) вкладки содержит объекты оформления календаря, для которых можно настроить шрифты:
DayFont - дни недели, расположенные в заголовке таблицы; GridFont — числа, размещенные в таблице катендаря; TitleFont — месяц и год в заголовке календаря.Списки Шрифт (Font) и Размер (Size) позволяют задать наименование и размер шрифта, выбранного из списка Свойства (Properties) объекта, а флажки области Атрибуты (Effects) — стиль оформления.