режиме. Текстовый курсор становится виден на графическом экране только при обращении к процедурам Read/ReadLn и сразу исчезает после окончания ввода. Текстовый курсор никак не связан с графическим курсором. Он изменяет свое положение после вывода очередного символа процедурами Write/ WriteLn или при исполнении процедуры GotoXY.
1.3.2. Драйверы текстовых устройств
Для упрощения текстового ввода/вывода в модуль F_GrText включен собственный драйвер текстовых устройств, позволяющий использовать стандартные процедуры Write/WriteLn и Read/RedaLn в графическом режиме. В этом разделе рассматриваются вопросы создания драйверой текстовых устройств.
С каждым текстовым файлом Турбо Паскаль связывает переменную типа Text, которая определена как запись следующего типа:
type
TextBuf = array [O..127] of Char;
TextRec = record
Handle Word; {Дескриптор файла}
Mode Word; {Режим использования файла}
BufSize Word; {Длина буфера}
Private Word; {He используется}
BufPos Word; {Индекс следующего символа в буфере}
BufEnd Word; {Количество необработанных символов}
BufPtr -^TextBuf; {Адрес буфера}
OpenFunc Pointer;
InOutFunc Pointer;
FlushFunc Pointer;
CloseFunc Pointer;
UserData array [1..16] of Byte;
Name array [0..'?9] of Char;
Buffer TextBuf end;
Поле Handle содержит дескриптор файла и используется при работе с дисковым файлом средствами ДОС.
Поле Mode может принимать одно из следующих значений:
const
fmClosed = $D7BO; {Файл закрыт} fmlnput = $D7B1; {Файл - в режиме чтения данных} fmOutput = $D7B2; {Файл - в режиме записи данных} fmInOut = $D7B3; {Файл - в режиме чтения/записи}
Любые другие значения этого поля означают, что файл не был открыт. Поле UserData никогда не используется Турбо Паскалем и зарезервировано для внутренних нужд вызывающей программы.