Переменные: тип | Действие и содержание | Стартовое значение |
CheckSnow, DirectVideo : Boolean | Управление режимами вывода на дисплей | False True |
CheckBreak : Boolean | Управление прерыванием работы программы | True |
CheckEOF : Boolean | Разрешение или запрет интерпретации символа конца файла (#26) | False |
LastMode : Word | Переменная для работы с процедурой TextMode | зависит от режима работы компьютера |
TextAttr : Byte | Значение текущего цветового атрибута для вывода текста на экран | зависит от последнего режима цвета |
WindMax : Word WindMin : Word | Параметры текущего окна на дисплее (см. разд. 15.4.1.1) | зависит от режима работы |
Переменные общего плана рассматриваются ниже, а ряд специализированных переменных (LastMode, WindMax и WindMin) будет детально обсужден при описании процедур TextMode и Window.
15.3.1. Переменные управления выводом на дисплей
15.3.1.1. Переменная CheckSnow. На цветных дисплеях с видеоадаптером CGA могут наблюдаться белые штрихи при смене изображения или выводе информации. Это явление (Snow — в переводе
- 321 -
с английского «снег») вызвано рассогласованием между обновлением видеопамяти и сменой изображения. Оно может быть снято программным путем. Механизм снятия «снега» реализован в модуле CRT и управляется логической переменной CheckSnow. Если ее значение установлено равным True, то будет включен механизм согласования, и эффект «снега» не возникнет. При этом несколько замедлится вывод символов на экран. Для прочих дисплейных адаптеров (EGA, VGA, MDA/Hercules и др.) и для адаптеров CGA без эффекта «снега» имеет смысл поддерживать значение CheckSnow равным False. Это ускорит вывод текстовой информации на экран дисплея.
После вызова процедуры TextMode значение CheckSnow всегда автоматически устанавливается равным False.
Переменная CheckSnow зависит от состояния другой переменной модуля CRT — DirectVideo. Если последняя равна False, то значение CheckSnow не играет роли.
15.3.1.2. Переменная DirectVideo. Она устанавливает режим записи информации в видеопамять при выполнении операторов Write и WriteLn, выводящих информацию на дисплей через механизм CRT (этот механизм включается автоматически при подключении модуля CRT).
Стартовое значение логической переменной DirectVideo равно True. Это же значение устанавливается после каждого вызова процедуры TextMode. При таком значении вывод информации на дисплей производится максимально быстрым способом. После записи значения False в DirectVideo вывод на экран производится медленнее.
Трудно указать причины, когда может понадобиться смена значения DirectVideo с True на False, кроме, может быть, написания системных программ и драйверов устройств, но если необходимо это сделать, то надо помнить о переустановке значения переменной после вызова процедуры TextMode.
15.3.2. Переменные управления работой клавиатуры
15.3.2.1. Переменная CheckBreak. Эта переменная является логическим переключателем режима работы откомпилированной и скомпонованной программы. Если ее значение равно True (стартовое значение), то нажатие комбинации клавиш Ctrl+Break во время выполнения операций ввода-вывода будет прерывать работу программы. Нажатие Ctrl+Break не во время ввода-вывода информации не имеет эффекта.
Запись значения False в переменную CheckBreak вообще отключает механизм прерывания работы программы комбинацией Ctrl+Break.
- 322 -
Значение переменной можно менять многократно. Иногда полезно разрешать прерывание для одной части программы и запрещать для другой:
USES CRT; { подключен модуль CRT }
BEGIN
CheckBreak:= False ; { отключение контроля }
... { непрерываемая часть }
CheckBreak:= True; { включение контроля }
... { здесь возможно прервать программу }
END.
Если на клавиатуре нет клавиши Break, то ее заменяет клавиша ScrollLock, и комбинация прерывания будет соответственно Ctrl+ScrollLock.
15.3.2.2. Переменная CheckEOF. Эта переменная разрешает (True) или запрещает (False) ввод с клавиатуры кода признака конца файла (ASCII-код номер 26 — «End-Of-File»). Этот код вырабатывается нажатием комбинации клавиш Ctrl+Z.