TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

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

Странности

FAQ

Ссылки

Форум

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

Рассылка

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

Об авторе

 

 

1.3.4. Тестовая программа

В следующей программе иллюстрируется использование средств модуля F_GrText. Программа вначале выводит несколько раз одно и то же сообщение с помощью процедуры OutString. Для каждого символа сообщения устанавливается свой угол наклона, плавно меняющийся от 0 до 30 градусов и обратно (см. рис. 1,5).

Текстовый ввод/вывод в графическом режиме 41

h00411.jpg

Рис. 1.5. Экран, создаваемый тестовой программой

Затем с помощью вызова SetWindow в верхней части экрана создается текстовое окно, в которое выводятся начальные строки PAS—файла с текстом программы. После нажатия на любую клавишу текстовое окно очищается и программа реализует ввод произвольной текстовой строки. После завершения ввода содержимое окна сдвигается вниз и программа ожидает нажатия на любую клавишу.

^+——---——————————————————————+

¦ Пример использования модуля F_GrText I +-__------_-----------------------------+^

Uses CRT,Graph,F_GrText;

const

DX = 50; {Ширина текстового окна} DY = 11; {Высота текстового окна} tl: String='Лучшая в мире система программирования';

t2: String='Турбо Паскаль ';

Grad = Pi/18O; {Перевод градус/радиан}

var

D,R,E: Integer;

Angle: Integer; {Угол поворота букв} xl,yl,x2,y2: Integer; {Координаты окон} F: File; {Файл со шрифтом} FT: Text; {Файл с текстом программы} N: Integer;

Р: Pointer; (Указатель на шрифт}

S: String;

k,H: Byte;

C: Char;

begin

{Инициируем графику} D := Detect;

InitGraph(D,R, ' ') ;

E := GraphResult;

if EOgrOk then begin

WriteLn(GraphErrorMsg(E) ) ;

Halt end;

{Выводим текст процедурой OutString} if RegisterChrFile('trip.chr')>0 then begin

yl := succ(GetMaxY) div 20;

xl := 12*yl;

x2 := Length (tl) ;

y2 := GetMaxY-2*yl;

while xl<y2 do begin

MoveTo(O,xl) ;

for k := 1 to x2 do begin

Angle := Round(30*sin(grad*(k*360/x2)));

OutString(tl[k],1,Angle,0.9,1) ;

end;

inc(xl,yl) end;

MoveTo(2*GetMaxX div 7,GetMaxY-3*yl) ;

for k := 1 to Length(t2) do

OutString(t2[k],1,0,1,1) end;

{Выбираем нужный шрифт} case D of

CGA: H := 8;

EGA: H := 14;

VGA: H := 16;

else

H := 8;

end;

{Готовим имя файла, содержащего шрифт} Str(H,S) ;

S := '8х'+S+'.fnf; {Имя файла} {Открываем файл со шрифтом} Assign(F,S);

Reset(F,1) ;

{Резервируем память и грузим шрифт} GetMem(P,FileSize(F) ) ;

BlockReacKF^^FileSizefF) ) ;

Close(F) ;

(Регистрируем шрифт и перехватываем ввод-вывод} SetFont(p,8,H) ;

GraphWriteOn;

{Создаем текстовое окно} TextColor(Black) ;

TextBackGround(White) ;

SetWindow ((GetMaxChar-DX) div 2,2,(GetMaxChar+DX) div 2,

(GetMaxLine+DY) div 3,DoubleBorder,

' Нажмите любую клавишу ',True,False,False);

{Открываем файл с текстом программы}

S := copy(ParamStr(0),1,pos('.',ParamStr(0)))+'pas';

Assign(FT,S) ;

Reset(FT) ;

(Читаем файл и выводим его в окно} for N := 1 to DY do

begin

ReadLn(FT,S) ;

WriteLn(S)

end;

Close(FT) ;

{Ждем действий пользователя} while not KeyPressed do;

while KeyPressed do

С := ReadKey;

{Очищаем текстовое окно и вводим строку} CIrScr;

WriteLn('Введите произвольный текст') ;

ReadLn(S) ;

{Сдвигаем ввод вниз окна и ждем} Scrolling(-DY div 2) ;

WriteLn('Текст смещен на ',-DY div 2,' строк');

WriteLn('Нажмите любую клавишу...');

С := ReadKey;

{Завершаем работу программы} GraphWriteOff;

CloseGraph end.

 

Глава1

Оглавление

 

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

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

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

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

Hosted by uCoz