Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-03-15.doc
Скачиваний:
0
Добавлен:
10.01.2020
Размер:
12.65 Mб
Скачать

2.19. Классы

Создание нового класса на основе базового производится нажатием кноп­ки New из разделеа Classes проекта (рисунок 2.19.1). В полях ок­на ука­зы­ваются: имя соз­да­ва­емого класса (Class Na­me) и ро­дительского (Based On), имя биб­лиотеки ро­ди­тель­ского клас­­са (From) и имя новой или су­щест­вую­щей биб­лио­теки с соз­­да­ва­е­мым клас­сом (Store In). Рисунок 2.19.1. Окно диалога New Class

Меню Class содержит команды: New/Edit Property/Methode (соз­дать/изменить свойство/метод), Include File (включить файл заголовков с константами), Class Info (просмотр списка классов со свойствами, методами и определение пиктограмм, выводимых на панели инструментов кон­струк­торов форм и классов (поле Toolbar icon) и в окне диалога Class Browser (поле Container icon)).

Класс типа формы создается аналогично форме. Можно сохранить форму в виде класса командой File/Save As Class (в одноименном окне установите Save=Current form и в области As Class укажите имя класса и библиотеки). Командой Tools/Op­ti­ons/Forms/Form (Form set) можно ука­зать класс типа формы, ис­поль­зуемый при соз­дании форм (набора форм).

Аналогично можно создавать подклассы на основе соз­дан­ных ранее классов и т.д. Классы можно копировать из биб­лиоте­ки в биб­лиоте­ку, перетаски­ва­ни­ем мышкой в разделе Classes проекта.

Классы пользователя можно разместить на панели инструментов Form Controls, используя инструмент View Classes (п. 2.13).

Для редактирования класса можно нажать кнопку Modify в окне Class Info, и появится таблица с колонками: Name (имя объекта, свойства, метода); Type (тип объекта: O ‑ объект, M ‑­ метод, P ‑ свойство); Ac­cess/As­­sign (наличие метода Access/Assign); Visibility (тип свойства или метода).

К омандой Tools/Class Browse можно открыть (приложением _Brow­ser) окно просмотра клас­сов и форм Class Browser (рисунок 2.19.2).

Рис. 2.19.2. Окно просмотра классов

В левой части нахо­дится дерево классов выбранной библиотеки или формы, а в правой ‑ список объ­ек­тов, свойств и методов. Типы просматриваемых классов мож­но задать в отдельном поле. Двойной щелчок по имени класса или библиотеки в дереве открывает класс в конструкторе классов.

Панель инструментов окна просмотра имеет кнопки: New Class (соз­да­ние класса), Rename (переименовать класс), Redefine (изменение роди­тель­ского класса), Clean Up Class Library (удаление помеченных для уда­ле­ния записей библиотеки классов), View Class Code (программный текст клас­са), Find (поиск класса или элемента).

Файл заголовков имеет расширение “H” и содержит объявления име­но­ванных констант вида: #Define <имя константы> “<значение>”.

Предпроцессор заменяет в тексте имя константы на ее значение.

Пример. #Define NDS “0.23”

2.20. Создание класса панели инструментов

Рассмотрим создание класса панели инструментов для работы с таблицей и класса формы, использующей этот класс.

Создание класса панели инструментов clNavigator

  1. Перейдем к разделу Classes; нажмем кнопку New и заполним поля в окне New Class (рисунок 2.19.1) создаваемого класса clNavigator.

  2. Р азместим на панели поле Text1 (для отображения номера текущей записи) и одну кнопку Command1 (для пе­ре­­мещения в перед). Аналогично можно разместить и дру­гие кнопки перемещения с командой Skip в процедуре обра­ботки ее нажатия. Выйдем из окна конструктора класса.

Создание класса формы clFormNavigator с панелью инструментов

  1. Создадим новый класс clFormNavigator на основе базового класса Form в библиотеке BiblClass.

  2. Разместим объект Grid.

  3. Добавим в этот класс свойство obToolBar командой Class/New Property для запоминания указателя на созданный объект типа clNavigator.

  4. Для объекта clFormNavigator составим процедуру Activate:

Set Classlib to Curdir()+“BiblClass“&& расположение библиотеки с классом

* создание панели инструментов на основе класса clNavigator

_Screen.activeform.obToolBar=createobject(“clNavigator“)

_Screen.activeform.obToolBar.Text1.Value=Recno() && номер записи

_Screen.activeform.obToolBar.show() && отображение панели на экране

_Screen.activeform.obToolBar.refresh() && повторный вывод формы

  1. Для объекта Grid1 составим процедуру AfterRowColChange:

_Screen.activeform.obToolBar.Text1.Value=Recno() && номер записи

_Screen.activeform.obToolBar.refresh() && повторный вывод формы

  1. Выйдем из окна конструктора класса с сохранением.

Создание формы на основе созданного класса clFormNavigator

  1. Выполним команду Tools/Option/Forms и в поле Form укажем (вы­берем) имя класса clFormNavigator.

  1. Из разделе проекта Forms нажмем кнопки New/New Form для соз­дания новой формы на основе класса clFormNavigator.

  2. Из контекстного меню объекта Grid1 выполним команду Builder и настроим объект Grid1 и саму форму на обработку таблицы изделий.

  3. Сохраним и выполним форму (рисунок 2.20.1).