Определяет, как система Visual FoxPro обеспечивает Обработку Очереди ожидаемых Событий Windows при обработке каждой Строки Программного Кода.

ApplicationObject.AutoYield[ = lExpr]

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

lExpr

Данный параметр характеризует, как обрабатывается Очередь ожидаемых Событий Активных Объектов системой Visual FoxPro Windows при выполнении каждой строки Программного Кода (.prg). lExpr может принимать одно из следующих Значений:

lExpr Краткое Опичание

True (.T.)

(По-Умолчанию) Текущий активный экземпляр Visual FoxPro обрабатыет События Windows в помежутке между выполнением текущих Строк Программного Кода (пользовательской Программы).

Если lExpr = true (.T.), активный компонент Visual FoxPro обрабатывает Очередь Событий Windows аналогичным образом, как и в Младших версиях Visual FoxPro.

False (.F.)

Активный компонент Visual FoxPro не обрабатывает очередь Событий ОС Windows между выполнением каждой строки Программного Кода (.prg).

Все необработанные События Windows помещаются в Очередь диспетчера Событий, которая будет обработана после выполнения системной команды DOEVENTS или при переходе Приложения в Состояние Ожидания (READ EVENTS). Указанное Состояние в системе Visual FoxPro происходит в момент ожидания от Пользователя определенных действий. Команда WAIT не создает Состояния Ожидания.

Expand imageКомментарии

Применяется В: Application, объект | _VFP, системная переменная

Рассматриваемое свойство AutoYield должно быть установлено в значение = False (.F.), когда в текущей Форме содержится внешний Контрол  ActiveX. Данная установка, AutoYield = false (.F.) предотвращает незамедлительную Обработку Событий контрола ActiveX в промежутках между выполнением каждой строки программного Кода. Например, если установлено: AutoYield = True (.T.), выполните Клик на текущем контроле ActiveX при выполнении некоторого Фрагмента программного Кода, что заставит обрабатывать данное событие системой VFP и влиять на текущее выполнение программы, что может привести к непредсказуемым последствиям и побочным Эффектам (не всегда Положительным).

При переключении данного Свойства в нестандартное значение, AutoYield = False (.F.), Происходит Следующее:

  • Контролы ActiveX не в состоянии обработать возникаемые собственные События, пока не наступает Состояние Ожидания, так, к примеру,  Клик не указанном Элементе ActiveX не имеет никакого эффекта в момент выполнения некоторого Фрагмента программного Кода. Аналогичное поведение наблюдается для системного Контрола GRID Visual FoxPro.

  • Текущие, активные команды ON KEY LABEL, и соответствующие им События (процедуры) игнорируются при выполнении фрагмента программного кода. Данные команды ON KEY LABEL, а также возникаемые События от Мышки помещаются в Очередь на обработку Событий (для Диспетчера Событий), до очередного Состояния Ожидания, где они будут последовательно Обработаны.

  • Нажатие на клавишу Esc не выполняет приостановку выполнения Программы. Данный случай идентичен установке команды: SET ESCAPE = OFF. В этом случае вы не сможете завершить бесконечные Циклы (зацикливание), без аварийного завершения текущего сеанса работы системы Visual FoxPro.

  • Выполнение Запросов SQL не прероывается (даже если есть ошибка).

  • Внешнее переключение между Приложениями Поддерживается, но вы не сможете переключиться обратно в активное Окно Visual FoxPro, пока последний не выполнит Фрагмент программного Кода и не перейдет в режим Состояние Ожидания.

Expand imageСм. также