Тексты программ___________________________________________291

if Name.FNameo'' then begin

Assign(F,Name.PName) ;

{$!-} Reset (F,1) ;

{$!+} if IQResultoO then

Exit; (Ошибка доступа к файлу/ end;

х0 := GetX; (Текущие координаты} у 0 := GetY;

for k := 1 to Length(S) do begin

с :- ord(S[k]> ;

if с in [FirstChr..LastChar] then if Name.FNameo'' then

begin (Берем шрифт из файла}

{$!-} Seek(F,Offs [с]) ;

BlockRead(E',Buf,Leng[c] ,j);

{$!+}

if (IOResult=0) and (Leng[c]-j) then OutChar(Buf) end

else (Шрифт загружен в память} with Name.Addrs do begin

PB := ptr(sa,oa+0ffs[c]);

OutCharfPB") end end;

MoveTo(xO,yO) ;

if Name. FNameo' ' then

Close(F) end end; {OutString} ^=,-,»=»-«=.-=; end. {F_Gc'rext} ("=-======»=»=/

ПЗ. РЕДАКТОР ВЕКТОРНЫХ ШРИФТОВ

В этом приложении приводится орисание работы и текст программы, предназначенной для редактирования существующих или создания новых векторных BCI— шрифтов. Такие шрифты используются для вывода текстовых сообщений стандартными процедурами OutText и OutTextXY, а также процедурой OutString из модуля F_GrText в графическом режиме работы экрана. Описание формата BCI— шрифтов приведено в п. 1.2. Программа рассчитана на работу с мышью и экраном типа EGA/VGA.

П3.1. Интерфейс с пользователем

Для запус ка программы следует дать команду

fontedit [FName]

В квадратных скобках указан необязательный параметр, определяющий имя уже существующего CHR— файла.

В момент запуска программа проверяет параметры обращения и, если указано имя FName, настраивается на редактирование шрифта из этого файла. Например, обращение

fontedit trip