необходимости изменять установленные идентификаторы, доступные для СУБД.
Записать какие-либо данные для объекта можно с помощью еще одного свойства
Object.Tag [ = Expression]
Оба перечисленных выше свойства по умолчанию, если им не присвоены какие-либо
значения, возвращают пустую символьную строку.
Для работы с классами и созданными на их основе объектами из программы в Visual FoxPro
существует несколько очень важных команд и функций, которые мы и рассмотрим. Мы советуем
вам максимально использовать возможности визуальной работы с классами и объектами, которые
описаны в главе 10. В то же время мы сознательно уделяем этим командам и функциям столько
внимания при описании объектной модели даже несмотря на то, что этот материал имеет
специфическое отношение только к Visual FoxPro, так как если вы внимательно разберете
приведенные здесь примеры, то в дальнейшем будете уверенно ориентироваться среди
рассматриваемых в этом параграфе сложных понятий ООП.
ADD CLASS ClassName [OF ClassLibraryName1] TO ClassLibraryName2 [OVERWRITE]
Добавляет описание класса в визуальную библиотеку классов. Параметр Class-Name
определяет имя класса, добавляемого в визуальную библиотеку классов ClassLibraryName2. Если
файл визуальной библиотеки классов не существует, Visual FoxPro создает визуальную
библиотеку классов и добавляет в нее определение класса. Если вы опускаете необязательную
опцию OF ClassLibraryName1, Visual FoxPro ищет описание класса в любых визуальных
библиотеках классов, открытых командой SET CLASSLIB. Visual FoxPro сгенерирует ошибку,
если определение класса не может быть размещено или определение класса с именем, которое
вы задаете, уже существует в ClassLibraryName2. Опция OF ClassLibraryName1 определяет
визуальную библиотеку классов, из которой копируется определение класса. Опция OVERWRITE
удаляет все классовые определения из визуальной библиотеки классов прежде, чем определение
нового класса будет добавлено.
Использование команды ADD CLASS добавляет определение класса в библиотеку классов или
копирует определение класса из одной визуальной библиотеки классов в другую. Определение
класса не может быть добавлено из программы, процедурного файла или приложения Visual
FoxPro (файлы с расширениями PRG или APP).
DEFINE CLASS ClassName1 AS ParentClass
[[PROTECTED Property1, Property2 ...]
Property = Expression...]
[ADD OBJECT [PROTECTED] Object AS ClassName2 [NOINIT]
[WITH cPropertylist]]...
[[PROTECTED] FUNCTION | PROCEDURE Name
[NODEFAULT]
cStatements
[ENDFUNC | ENDPROC]]...
ENDDEFINE
Создает определяемый пользователем класс или подкласс и задает свойства, события и
методы для класса или подкласса. Параметр ClassName1 определяет имя создаваемого класса.
ОпцияAS ParentClass определяет родительский класс, на котором будет основан создаваемый
класс или подкласс. Родительским классом может быть базовый класс Visual FoxPro, такой,
например, как Form или любой другой определяемый пользователем класс или подкласс.
Невизуальный определяемый пользователем класс может быть создан определением имени
Custom для ParentClass.
С помощью опции [PROTECTED Property1, Property2 ...] Property = Expression... можно
назначить свойства создаваемому классу и установить для них значения, которые будут
использоваться по умолчанию. Знак равенства говорит о том, что свойству PropertyName
присваивается значение выражения Expression. Чтобы предотвратить доступ и изменение
значений свойств вне определения класса или подкласса, включайте опцию PROTECTED и список
защищенных свойств. Методы и события внутри определения класса или подкласса могут
обращаться к защищенным свойствам.
Опция ADD OBJECT позволяет добавить объект к определению класса или подкласса из
базового класса Visual FoxPro, определяемого пользователем класса или подкласса, либо из
класса OLE. Параметр Object определяет имя объекта и используется для ссылки на объект
изнутри определения класса или подкласса после его создания. Параметр ClassName определяет
имя класса или подкласса, содержащего объект, который вы добавляете к определению класса.
Опция NOINIT указывает на то, что метод Init не выполняется при добавлении объекта.
Опция WITH cPropertyList определяет список свойств и значений свойств объекта, который вы
добавляете к определению класса или подкласса.
converted to PDF by HupBaH9I