Курсовые работы, лабораторные и дипломы по информатике.

>> Справочник по функциям Turbo Pascal 7.0.

Наши спонсоры:

Функция RegisterBGIFont.

  • Объявление:

    Function RegisterBGIFont(Font : Pointer) : Integer;

  • Описание:

    Передает графической системе указатель на шрифт, который был встроен в исполняемый файл программы (с помощью tlink.exe).

  • Замечания:

    Если происходит ошибка, функция возвращает значение меньшее нуля. Возможные коды ошибок - grError, grInvalidFont и grInvalidFontNum. При отсутствии ошибок, возвращается внутренний номер шрифта.
    Эта функция дает возможность пользователю загрузить файл шрифта и зарегистрировать его, передавая его расположение в памяти в RegisterBGIfont.
    При вызове SetTextStyle, будет использоваться зарегистрированный шрифт, вместо загружанмого с диска модулем Graph. Зарегистрированный пользователем шрифт может быть загружен с диска в кучу (heap), или преобразован в *.OBJ файл (с помощью BINOBJ.EXE) и прилинкован к *.EXE
    Для загрузки и регистрации файла шрифта имеются несколько причин: Во-первых, Graph может хранить только один штриховой шрифт в памяти в определенный момент времени. Если ваша программа должна быстро чередовать штриховые шрифты, вы можете зарегистрировать нужные вам шрифты самостоятельно в начале программы. При этом Graph уже не будет загружать и выгружать шрифты каждый раз при обращении к SetTextStyle.
    Во-вторых, при желании, вы можете включить файлы шрифта непосредственно в ваш *.EXE файл. Таким образом, необходимые для работы вашей программы файлы шрифта, будут встроены в нее.
    Встроить файл шрифта в вашу программу можно так:
    1. Запустить программу binobj.exe на файле шрифта.
    2. Скомпоновать полученный *.OBJ файл с вашей программой.
    3. Зарегистрировать файл шрифта перед вызовом InitGraph.
    Для более детального объяснения и примера вышенаписанного, смотри комментарии в программе BGILINK.PAS на дистрибутивном диске. Документация по утилите BINOBJ доступна в файле UTIL.DOC (в архиве ONLINE.ZIP) на вашем дистрибутивном диске.

  • Пример:

    { Пример программы для функции RegisterBGIFont}
    uses Graph;
    var
    Driver, Mode : Integer;
    FontF : File;
    FontP : Pointer;
    begin
    { Открываем файл шрифта, регистрируем }
    Assign(FontF, 'TRIP.CHR');
    Reset(FontF, 1);
    GetMem(FontP, FileSize(FontF));
    BlockRead(FontF, FontP^, FileSize(FontF));
    if RegisterBGIFont(FontP) < 0 then
    begin
    WriteLn('Ошибка регистрации шрифта: ', GraphErrorMsg(GraphResult));
    Halt(1);
    end;
    { Инициализируем графику }
    Driver := Detect;
    InitGraph(Driver, Mode, 'X:\BP'); { Путь к BGI драйверам }
    if GraphResult < 0 then
    Halt(1);
    ReadLn;
    { Выбираем установленый шрифт }
    SetTextStyle(TriplexFont, HorizDir, 4);
    OutText('Triplex loaded by user program');
    MoveTo(0, TextHeight('a'));
    ReadLn;
    { Выбираем шрифт, загружаемый с диска }
    SetTextStyle(SansSerifFont, HorizDir, 4);
    OutText('Your disk should be spinning..');
    MoveTo(0, GetY + TextHeight('a'));
    ReadLn;
    { Перевыбираем фонт, уже находящийся в памяти }
    SetTextStyle(TriplexFont, HorizDir, 4);
    OutText('Back To Triplex');
    ReadLn;
    CloseGraph;
    end.



Вернуться к оглавлению справочника