Использование модуля WinCrt
Чтобы использовать модуль WinCrt, нужно просто указать в ва- шей программе оператор uses, как и при использовании любого дру- гого модуля.
uses WinCrt;
По умолчанию стандартные текстовые файлы Input и Output, оп- ределенные в модуле System, не присваиваются, и все обращения к процедурам Read, Readln, Write или Writeln без указания файловой переменной приводят к ошибке ввода-вывода. Однако, когда програм- ма использует модуль WinCrt, код инициализации данного модуля присваивает Input и Output стандартные текстовые файлы, чтобы ссылаться на окно, эмулирующее текстовый экран. Это соответствует выполнению в начале программы следующих операторов:
AssignWinCrt(Input); Reset(Input); AssignWinCrt(Output); Rewrite(Output);
Когда в программе выполняются процедуры Readln, Read, Write или Writeln, в оперативной области Windows открывается окно CRT. По умолчанию заголовком окна CRT будет полное имя маршрута файла .EXE программы. Когда программа завершает работу (управление дос- тигает конечного зарезервированного слова end), заголовок окна CRT изменяется на "(Inactive nnnnn)", где nnnnn - заголовок окна в его активном состоянии.
Заметим, что хотя программа и завершила работу, окно остает- ся на экране, благодаря чему пользователь может проверить вывод программы. Аналогично другим прикладным программам Windows, прог- рамма не завершается полностью, пока пользователь не закроет ок- но.
Более полно управлять жизненным циклом окна CRT вам позволя- ют подпрограммы InitWinCrt и DoneWinCrt. При обращении к первой из них без ожидания первого вызова процедур Readln, Read, Write или Writeln немедленно создается окно CRT. Аналогично, обращение к DoneWinCrt немедленно уничтожает окно CRT, не ожидая, пока его закроет пользователь.
Окно CRT представляет собой прокручиваемое "панорамное" окно на виртуальном текстовом экране. По умолчанию виртуальный экран имеет размеры 80 столбцов на 25 строк, но реальный размер окна CRT может быть меньше. Если этот размер меньше, пользователь для перемещения области окна по текстовому экрану большего размера может использовать полосы прокрутки окна или клавиши управления курсором. Это особенно полезно для "обратной прокрутки" и провер- ки ранее написанного текста. По умолчанию панорамное окно отсле- живает курсор текстового экрана. Другими словами, панорамное окно автоматически прокручивается, чтобы обеспечить постоянную види- мость курсора. Установив переменную AutoTracking в значение False, вы можете запретить средство автоматической прокрутки.
Размеры виртуального экрана определяются переменной ScreenSize. Присвоив этой переменной новые размерности перед тем, как ваша программа создает окно CRT, вы можете изменить размеры виртуального экрана. Когда окно создается, в динамически распре- деляемой памяти выделяется буфер экрана. Размер этого буфера ра- вен произведению ScreenSize.Y на ScreenSize.Y и не может превы- шать 65520 байт. Ответственность за присваивания значений этим переменным возлагается на вас (они не должны превышать указанную границу). Если, например, вы присвоите ScreenSize.X значение 64, то наибольшим допустимым значением для ScreenSize.Y будет 1023.
В любой момент в процессе выполнения программы, использующей модуль WinCrt, пользователь может прервать выполнение, выбрав в меню Control (Управление) окна CRT команду Close (Закрытие), дважды щелкнув кнопкой "мыши" в рамке меню Control или нажав кла- виши Alt+F4. Аналогично, в любой момент для прерывания прикладной программы пользователь может нажать Ctrl+C или Ctrl+Break, при этом окно переводится в неактивное состояние. Установив перемен- ную CheckBreak в значение False, вы можете запретить эту возмож- ность.