Процедура TextMode

Модуль Crt

Устанавливает определенный текстовый режим.

Объявление:

Procedure TextMode(Mode : Integer);

Режим: 

Замечания:
При вызове процедуры TextMode:

  • Размеры текущего окна приравниваются к размерам всего экрана.
  • DirectVideo устанавливается равным True.
  • Если был выбран цветной режим, то CheckSnow. устанавливается равным True
  • Текущий текстовый атрибут сбрасывается к нормальному, что соответствует вызову NormVideo.
  • Прежний видеорежим сохраняется в переменной LastMode

Кроме того, при запуске программы, значение переменной LastMode устанавливается равным последнему активному видеорежиму.

Вызов TextMode(LastMode) устанавливает последний активный текстовый режим. Это может быть полезно, если вы хотите возвратиться к текстовому режиму после работы в графическом режиме.

Следующее обращение к TextMode:

TextMode(C80 + Font8x8)

установит цветной текстовый режим 80x43 для EGA или 80x50 для VGA. TextMode(Lo(LastMode)) всегда выключает режим 80x(43/50) и сбрасывает режим дисплея (хотя и оставляет видеорежим неизменным); в то время как:

TextMode(Lo(LastMode) + Font8x8)

оставит прежний видеорежим, но переключит дисплей в режим 80x(43/50).

Если ваша система находится в режиме с 43-мя или с 50-ю строками при запуске программы, то текущий видеорежим будет сохранен инициализационной частью модуля Crt, и в переменной WindMax будет сохранено максимальное число строк на экране.

Вот, как корректно написать программу, которая при завершении работы восстановит видеорежим к его первоначальному состоянию:

Program MyVideo;

Uses Crt;

Var OrigMode : Integer;

Begin OrigMode:=LastMode; { Запоминаем начальный видеорежим }

. . .

TextMode(OrigMode); { Восстанавливаем его при выходе }

End.

Пример программы: txtmd.pas