Использование компонентов ActiveX и библиотек классов

До сих пор мы использовали только те элементы управления, которые доступны из различных панелей управления Visual FoxPro. Это, так сказать, стандартные элементы управления, входящие в состав Visual FoxPro. Но, как часто бывает в жизни, здесь мы с тобой видим только надводную часть “айсберга”, а все остальное пока от нас скрыто… Улавливаешь, о чем это я?!

Правильно, кроме уже известных нам элементов управления существует множество других, как входящих в состав Visual FoxPro, так и разработанные сторонними фирмами.

Те элементы управления, которые входят в состав Visual FoxPro, находятся в специальных каталогах, которые называются библиотеками классов. В Visual FoxPro эти библиотеки объединены под общим названием — Visual FoxPro Foundation Classes (Основные классы Visual FoxPro).

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

Использование библиотек классов

Чтобы добраться до необходимой нам библиотеки, воспользуемся уже хорошо знакомой нам панелью инструментов Form Controls, а именно кнопкой View Classes (Просмотр классов).

При нажатии этой кнопки мы увидим меню, содержащее три пункта: Add (Добавить), Standard (Стандартные), ActiveX Controls (Элементы управления ActiveX).

По умолчанию галочкой отмечен пункт Standard (Стандартные), и на панели Form Controls отображены стандартные элементы управления, которыми мы уже пользовались. Чтобы добавить внешнюю библиотеку классов, необходимо выбрать пункт меню Add (Добавить). При этом откроется диалоговое окно Open (Открыть), в котором нам нужно указать файл небходимой библиотеки. Библиотеки классов имеют расширение vex. В данном случае нас будет интересовать каталог classes, в котором “лежат” четыре библиотеки классов Visual FoxPro.

Укажем библиотеку buttons.vcx. Она содержит кнопки, которые могут использоваться для перемещения по записям таблиц. После выбора необходимой библиотеки в меню кнопки View Classes (Просмотр классов) на панели Form Controls (Элементы управления формы) будет добавлен пункт с названием выбранной библиотеки, а стандартные элементы управления будут заменены на элементы управления данной библиотеки.

Рассмотрим элементы управления, входящие в состав библиотеки классов buttons.vcx.

Элементы управления библиотеки buttons.vcx

  • mailbtn – С помощью этой кнопки можно отправить данные по электронной почте
  • vcr – Группа кнопок для перемещения по записям таблицы
  • cmdok – Кнопка ОК
  • cradhelp – Кнопка Help
  • cmdcancel – Кнопка Cancel

Все эти элементы можно размещать в экранных формах точно так же, как и стандартные элементы управления.

Все, элемент управления добавлен в форму, и что самое интересное, он полностью “готов к употреблению”. Попробуй, пощелкай по кнопкам. Все работает, происходит перемещение по записям таблицы и обновление экранной формы. И ничего выдумывать не надо!

Еще один способ использования внешних библиотек и элементов управления — применение галереи компонентов, в которой “собраны” все эти самые основные классы (Foundation Classes).

Открыть галерею компонентов можно, воспользовавшись пунктом системного меню Tools | Component Gallery.
Для добавления необходимого элемента в экранную форму нужно нажать правую кнопку мыши и выбрать пункт контекстного меню Add To Form (Добавить в форму). Можно также просто “ухватить” его мышью и перетащить на экранную форму.

Еще одним способом размещения в форме элементов управления из внешних библиотек классов является использование Class Browser (Браузер классов). Открыть его можно, воспользовавшись одноименным пунктом меню Tools (Инструменты).
Перенести выбранный элемент в экранную форму можно точно так же, как и при использовании галереи компонентов.

Компоненты ActiveX

Компоненты ActiveX представляют собой объекты, включающие в себя данные и код. Их можно использовать так же, как и элементы управления Visual FoxPro. Единственное их отличие от базовых компонентов Visual FoxPro состоит в том, что они создаются не в среде FoxPro, а с помощью других средств разработки, например Visual C++.

А главным преимуществом является то, что их много. Их разработкой занимаются все, кому не лень — как коммерческие организации, так и программисты. Точное количество существующих компонентов ActiveX, наверное, одному Богу известно…

Ладно, лирику в сторону, переходим к практике. Для выбора необходимых компонентов ActiveX необходимо воспользоваться пунктом ActiveX Controls (Элементы управления ActiveX) из контекстного меню кнопки View Classes (Просмотр классов) панели Form Controls (Элементы управления), после чего появится сообщение.

Ничего страшного, просто наш Лис просит указать, какие именно элементы управления мы собираемся использовать, и просит воспользоваться пунктом Options (Опции) из системного меню Tools (Инструменты) для выбора компонентов.

В списке Selected мы видим все доступные на нашем компьютере компоненты ActiveX. Для того чтобы подключить дополнительные компоненты, скажем, с компакт-диска, необходимо воспользоваться кнопкой Add (Добавить). А для выбора уже имеющихся элементов достаточно отметить их крестиками в списке Selected и нажать кнопку ОК.

После этой процедуры мы без хлопот можем добавить наши элементы на панель Form Controls. Вот и давай выберем несколько наиболее часто применяемых в приложениях компонентов ActiveX. В качестве примера будем использовать следующие компоненты:
• Точечный рисунок;
• Документ Word;
• Презентацию Power Point;
• Microsoft Slider Control;
• Microsoft ProgressBar Control;
• Calendar Control.

Начнем с первых трех. Для этого создадим новую экранную форму с тремя вкладками. Разместив на первой вкладке компонент точечный рисунок, вызовем контекстное меню, в котором выберем пункт Точечный рисунок Object, а затем опцию Открыть или Изменить При выборе пункта Открыть запустится приложение-сервер (в данном случае Paint), в котором откроется созданный рисунок. Если же выбрать опцию Изменить, то к панелям инструментов Visual FoxPro добавятся панели инструментов Paint, и можно приступить к редактированию или созданию рисунка.

Точно такие же манипуляции можно проделать и с остальными элементами на вкладках нашей формы.
Теперь рассмотрим использование остальных объектов ActiveX.

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

1
2
3
4
5
SELECT Table1
FOR 1=1 ТО 10000
APPEND BLANK
REPLACE Nnumeric WITH RECNO()
ENDFOR

Теперь создадим новую экранную форму и назначим эту таблицу в качестве источника данных. Разместим в форме наш элемент ActiveX и обычную командную кнопку.

Если щелкнуть на данном элементе правой кнопкой, откроется контекстное меню, в котором можно настроить некоторые свойства данного компонента.

В окне свойств элемента ProgressBar мы можем установить такие параметры, как: максимальное и минимальное значения, вид указателя мыши| стиль отображения объекта и т.д.

В событии click для кнопки Сканировать напишем следующее:

1
2
3
4
5
6
SELE TABLE1
THISFORM.OLEC0NTROL1.MAX=RECCOUNT()
SCAN
REPLA NNUMERIC WITH NNUMERIC+1
THISFORM.OLECONTROL1.VALUE=RECNO()
ENDSCAN

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

Компонент ActiveX, именуемый как slider, представляет собой шкалу с двигающимся маркером. Обычно он используется в различных программах-плеерах для регулировки уровня громкости, в эквалайзерах и т.д. Но, тем не менее, мы также можем использовать его в своих формах. Давай обратимся к нашей новой форме, удалим из нее предыдущий компонент и добавим элемент slider и объект Grid.

Теперь обратимся непосредственно к самому ActiveX-компоненту: в свойстве mit данного объекта пропишем:

1
2
THIS.MIN-1
THIS.MAX=RECCOUNT()

В событии CHANGE:

1
2
3
MYREC=THIS.VALUE SELE TABLE1
GO MYREC
THISFORM.REFRESH()

Запускаем форму.

А вот еще один (шуточный) пример использования slider — мы расположим на форме три таких элемента и будем с их помощью изменять параметры отображения объекта Grid.

В данном случае в событии change мы пишем следующий код:
• для первого:

1
THIS FORM.GRIDl.BACKCOLOR=RGB(THIS.VALUE,THIS.VALUE,THIS.VALUE)

• для второго:

1
THISFORM.GRID1.FORECOLOR=RGB(THIS.VALUE,THIS.VALUE, THIS.VALUE)

• для третьего:

1
THISFORM.GRIDl.FONTSIZE=THIS.VALUE

Более того, для двух первых объектов необходимо установить свойство Мах=255, а для третьего Мах=70, Min=8.

Использование календаря

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

Форма со встроенным календарем

Указав в качестве источника данных соответствующее поле, можно вводить даты с помощью календаря.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100