режиме. Текстовый курсор становится виден на графическом экране только при обращении к процедурам 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 никогда не используется Турбо Паскалем и зарезервировано для внутренних нужд вызывающей программы.