TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Процедуры и функции модуля WinPrn 

             Процедуры и функции модуля WinPrn  перечислены  в  следующей
        таблице:

        ┌──────────────────────────┬────────────────────────────────────┐
        │    Процедура/функция     │          Описание                  │
        ├──────────────────────────┼────────────────────────────────────┤
        │    AbortPrn              │ Прекращает печать задания, отбрасы-│
        │                          │ вая все нераспечатанные данные.    │
        ├──────────────────────────┼────────────────────────────────────┤
        │    AssignPrn             │ Присваивает принтеру файл.         │
        ├──────────────────────────┼────────────────────────────────────┤
        │    AssingDefPrn          │ Присваивает файл  используемому  по│
        │                          │ умолчанию принтеру.                │
        ├──────────────────────────┼────────────────────────────────────┤
        │    SetPrnFont            │ Начинает печать файла  с  выбранным│
        │                          │ шрифтом.                           │
        ├──────────────────────────┼────────────────────────────────────┤
        │    TitlePrn              │ Выводит  заголовок печатаемого фай-│
        │                          │ ла.                                │
        └──────────────────────────┴────────────────────────────────────┘

                  Драйверы устройств для текстовых файлов

             Borland Pascal позволяет  вам  определить  ваши  собственные
        драйверы  устройств для текстовых файлов.  Драйвер устройства для
        текстовых файлов представляет собой набор из четырех функций, ре-
        ализующих полный интерфейс между файловой системой Borland Pascal
        и каким-либо устройством.

             Этими четырьмя функциями, с помощью которых определяется лю-
        бой  драйвер устройства,  являются функции Open,  InOut,  Flush и
        Close. Заголовок каждой функции имеет следующий вид:

             function DeviceFunc(var F: TextRec) integer

        где TехtRес (или TTextRec для Windows) -  тип  записи  текстового
        файла, который определяется в Главе 21. Чтобы в функции использо-
        вался дальний тип вызова,  каждая из них должна компилироваться с
        директивой {$F+}.  Значение, возвращаемое каждой функцией, предс-
        тавляющей собой интерфейс с  устройством,  становится  значением,
        возвращаемым  функцией  IOResult.  Возвращаемое значение 0 свиде-
        тельствует об успешном завершении операции.

             Для того,  чтобы связать функцию, осуществляющую интерфейс с
        устройством, с конкретным файлом, нужно написать специальную про-
        цедуру Assign (аналогичную процедуре AssignCrt в модуле  Crt  или
        WinCrt). Эта процедура должна присваивать адреса четырех функций,
        осуществляющих интерфейс с устройствами,  четырем  указателям  на
        функции в переменной текстового файла. В придачу к этому вы долж-
        ны сохранить системную константу fmClosed в поле  Моdе,  записать
        размер буфера текстового файла в  переменную  BufSize,  сохранить
        указатель  буфера текстового файла в переменной BufPtr и очистить
        строку Nаме.

             Предположим, например, что именами четырех функций, реализу-
        ющих интерфейс с устройством, являются функции DevOpen, DevInOut,
        DevFlush, DevClose и Assign.

             Тогда процедура Assing может выглядеть следующим образом:

             procedure AssignDev(var F: Text);
             begin
               with TextRec(F) do
               begin
                 mode      := fmClosed;
                 BufSize   := SizeOf(Buffer);
                 BufPtr    := @Buffer;
                 OpenFunc  := @DevOpen;
                 InOutFunc := @DevInOut;
                 FlushFunc := @DevFlush;
                 CloseFunc := @DevClose;
                 Name[0]   := #0;
              end;
             end;

             Для хранения пользовательской информации в функции, реализу-
        ющей интерфейс  с  устройством,  может использоваться поле записи
        UserData.  Это  поле  не  изменяется  файловой  системой  Borland
        Pascal.


Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz