Это свойство объекта приложения предоставляет возможность управлять общими установками языка Visual FoxPro. Оно включает возможность проверять неверно объявленные переменные памяти.

_VFP.LanguageOptions [= eValue] 

Expand imageВозвращаемое значение

eValue
Значение бита Описание

1

Для переменных памяти требуется строгое объявление типа.

Expand imageПримечания

Применяется к: объекту Application | системной переменной _VFP

Когда LanguageOptions установлено в 1, вы должны объявлять переменные памяти и массивы, как LOCAL или PUBLIC до их использования в коде приложения. Попытка использовать необъявленные переменные или массивы будет генерировать вывод в окне DEBUG OUTPUT. При этом не генерируется ошибка. Вы должны записывать этот вывод в файл так, как показано в приведенной ниже строке кода:

  CopyCode imageСкопировать код
   SET DEBUGOUT TO MyErrorFile

Вывод из необъявленных переменных в LanguageOptions представляет собой разделенный запятыми список в формате:

LangOptionsErr, DateTime, cLineNo, cProcedure|cMethod, cFileName, cVarName

Элемент Описание

LangOptionsErr

Определяет имя вывода типа для поисков и фильтров

DateTime

Определяет штамп времени, когда запущен (= DATETIME( ))

cLineNo

Определяет номер строки, где произошла ошибка (=LINENO( ))

cProcedure|cMethod

Определяет имя процедура или метода, в котором произошла ошибка ( = PROGRAM( ))

cFileName

Определяет имя файла, в котором произошла ошибка. (=SYS(16( ))

cVarName

Определяет имя необъявленной переменной

Объявление переменных PRIVATE не создает переменных (в отличие от объявления их посредством PUBLIC или LOCAL), поэтому приведенный ниже код сгенерирвует запись лога:

  CopyCode imageСкопировать код
   PRIVATE myvar
   myvar = 1

Команды, которые создают переменные на лету, такие как SCATTER ... NAME, REPORT ... NAME и прочие, будут генерировать записи логов, поскольку эти переменные создаются как PRIVATE.

Expand imageПример

Приведенный ниже код показывает вывод отладчика, являющийся следствием ввода необъявленной переменной myvar.

  CopyCode imageСкопировать код
_VFP.LanguageOptions=1
myvar=4

Строгая типизация в Visual FoxPro обеспечивается принудительно только в run time, поэтому вы должны запустить код для обнаружения ошибок. Строгая типизация применима в обоих версиях Visual FoxPro (разработчика и run time).

ЗамечаниеЗамечание

Использование частных (private) переменных, наподобие тех, которые объявляются командой PRIVATE или тех, которые создаются при использовании ключевого слова NAME определенных команд, будет генерировать ошибки. Если вы распространяете свое приложение, на которое может потенциально воздействовать установка этого свойства в 1 другим разработчиком, вы должны предохранить свой код путем установки этого свойства в 0, когда это необходимо.

Expand imageСмотрите также