Директива препроцессора #DEFINE ... #UNDEF

Создает и освобождает константы этапа компиляции.

Синтаксис

#DEFINE ConstantName eExpression
...
#UNDEF ConstantName

Параметры
ConstantName
Задает имя константы этапа компиляции. В качестве имени константы можно использовать любое допустимое имя Visual FoxPro, начинающееся с буквы или с символа подчеркивания и состоящее не более чем из 254 букв, цифр или символов подчеркивания. Чтобы программу было удобнее читать и проще отлаживать, используйте в именах констант прописные буквы и придерживайтесь в них стандартных соглашений об именовании.
Важное замечание Не используйте в качестве имен констант ключевые слова Visual FoxPro.
Чтобы прекратить подстановку текста для константы, созданной с помощью директивы #DEFINE, выдайте #UNDEF ConstantName.
eExpression
Задает значение для константы этапа компиляции. В качестве eExpression можно использовать имя или выражение, значение которого принадлежит одному из следующих типов: Character, Numeric, Currency, Date, Datetime или Logical.
Важное замечание Не используйте системные переменные памяти в качестве eExpression. Системные переменные памяти вычисляются только на этапе выполнения.

Комментарии
Директивы препроцессора #DEFINE и #UNDEF используются для создания в программах констант этапа компиляции. Когда вы вместо того, чтобы пользоваться переменными памяти, создаете константы с помощью директив #DEFINE, вы сокращаете потребление памяти, повышаете производительность и упрощаете программы.
Чтобы создать константу с помощью директивы #DEFINE, задайте в аргументе ConstantName имя константы, а в аргументе eExpression ее значение. В процессе компиляции программы производится подстановка текста: имя константы заменяется выражением значения константы везде, где это имя встречается в программе. Можно прервать подстановку значения константы, выдав директиву #UNDEF.
Подстановка производится только в тех строках программы, которые следуют за директивой #DEFINE, создающей константу, и предшествуют директиве #UNDEF для этой константы. Константа доступна только в той программе, где она создается.
Если директива #DEFINE помещена внутри события или процедуры метода формы, то константа времени компиляции #DEFINE доступна только в пределах этого события или процедуры. Чтобы сделать эту константу доступной всем событиям и процедурам метода формы, следует в меню Form выбрать Include File и указать файл заголовка, содержащий константу времени компиляции #DEFINE.

Пример

* Следующая программа создает константу этапа компиляции с именем
* MAXITEMS. Эта константа используется в цикле FOR ... NEXT для
* отображения чисел от 1 до 10.
#DEFINE MAXITEMS 10
CLEAR
FOR gnCount = 1 TO MAXITEMS
	? gnCount
NEXT

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 28.10.2002