Это свойство объекта приложения предоставляет возможность управлять общими установками языка Visual FoxPro. Оно включает возможность проверять неверно объявленные переменные памяти.
_VFP.LanguageOptions [= eValue] |
Возвращаемое значение
- eValue
-
Значение бита Описание 1
Для переменных памяти требуется строгое объявление типа.
Примечания
Применяется к: объекту Application | системной переменной _VFP
Когда LanguageOptions установлено в 1, вы должны объявлять переменные памяти и массивы, как LOCAL или PUBLIC до их использования в коде приложения. Попытка использовать необъявленные переменные или массивы будет генерировать вывод в окне DEBUG OUTPUT. При этом не генерируется ошибка. Вы должны записывать этот вывод в файл так, как показано в приведенной ниже строке кода:
![]() | |
---|---|
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), поэтому приведенный ниже код сгенерирвует запись лога:
![]() | |
---|---|
PRIVATE myvar myvar = 1 |
Команды, которые создают переменные на лету, такие как SCATTER ... NAME, REPORT ... NAME и прочие, будут генерировать записи логов, поскольку эти переменные создаются как PRIVATE.
Пример
Приведенный ниже код показывает вывод отладчика, являющийся следствием ввода необъявленной переменной myvar.
![]() | |
---|---|
_VFP.LanguageOptions=1 myvar=4 |
Строгая типизация в Visual FoxPro обеспечивается принудительно только в run time, поэтому вы должны запустить код для обнаружения ошибок. Строгая типизация применима в обоих версиях Visual FoxPro (разработчика и run time).
![]() |
---|
Использование частных (private) переменных, наподобие тех, которые объявляются командой PRIVATE или тех, которые создаются при использовании ключевого слова NAME определенных команд, будет генерировать ошибки. Если вы распространяете свое приложение, на которое может потенциально воздействовать установка этого свойства в 1 другим разработчиком, вы должны предохранить свой код путем установки этого свойства в 0, когда это необходимо. |