Иллюстрированный самоучитель по Tirbo Pascal



              

Текстовый вывод на экран - часть 5


Window(40,2,70,17); 

можно было бы использовать два оператора

WindMin := 39+(1 shl 8); 

WindMax := 69+(16 shl 8);

(в отличие от обращения к Window координаты, хранящиеся в переменных WindMin и WindMax, соответствуют началу отсчета 0,0).

Процедура GotoXY.

Переводит курсор в нужное место экрана или текущего окна. Заголовок процедуры:

Procedure GotoXY(X,Y: Byte);

Здесь X, Y - новые координаты курсора. Координаты задаются относительно границ экрана (окна), т.е оператор

GotoXY(1,1);

означает указание перевести курсор в левый верхний угол экрана (или окна, если к этому моменту на экране определено окно). Обращение к процедуре игнорируется, если новые координаты выходят за границы экрана (окна).

Функции whereX и WhereY.

С помощью этих функций типа Byte можно определить текущие координаты курсора: WhereX возвращает его горизонтальную, a WhereY - вертикальную координаты.

В следующей программе сначала в центре экрана создается окно, которое обводится рамкой, затем в окне выводится таблица из двух колонок.

Uses CRT;

const

LU =#218;{Левый верхний угол рамки} 

RU =#191;{Правый верхний угол)}

LD =#192;{Левый нижний} 

RD =#217;{Правый нижний} 

H =#196;{Горизонтальная черта} 

V =#179;{Вертикальная черта} 

X1 =14;{Координаты окна}

Y1 =5;

X2 =66;

Y2 =20;

Txt = 'Нажмите клавишу Enter...'; 

var

k: integer; 

begin

ClrScr; {Очищаем экран} 

{Создаем окно в центре экрана - желтые символы на синем фоне:}

TextBackground(Blue);

TextColor(Yellow);

Window(X1,Y1,X2,У2);

ClrScr;

{Обводим окно рамкой}

Write(LU); {Левый верхний угол}

{Горизонтальная линия}

for k: = X1+1 to X2-1 do Write(H);

Write(RU);{Верхний правый угол}

for k := Y1+1 to Y2-1 do{Вертикальные линии}

begin

GotoXY(1,k-Y1+1);{Переходим к левой границе}

Write(V);{Левая черта}

GotoXY(X2-X1+1,WhereY){Правая граница}

Write(V){Правая черта} 

end;

Write(LD);

{Левый нижний угол}

Window(X1,Y1,X2,Y2+1);{Расширяем вниз на одну строку координаты окна, иначе вывод в правый нижний угол вызовет прокрутку окна вверх} 




Содержание  Назад  Вперед