Переключение между окнами программ и их закрытие в среде Turbo Pascal
Иногда при создании программ возникает необходимость работы сразу с несколькими PAS-файлами. При этом все они могут быть открыты в среде Turbo Pascal. Для переключения между окнами нескольких открытых файлов программ используется клавиша [F6]. На рисунке ниже показан порядок переключения между четырьмя открытыми PAS-файлами. Смена окон программ происходит циклически, т.е. при смене окна последнего открытого файла появляется окно PAS-файла, открытого первым.
Для закрытия окна с текстом программы в среде Turbo Pascal необходимо нажать комбинацию "горячих клавиш" [Alt] + [F3] (см. рисунок ниже).
Для выхода из среды программирования Turbo Pascal в Windows нужно нажать комбинацию клавиш [Alt] + [X] (здесь [X] - клавиша клавиатуры с латинской буквой "икс").
9.7.6. Перечень наиболее часто встречаемых "горячих клавиш" в среде Turbo Pascal
Комбинация клавиш | Назначение |
[F10] | Вход/выход в/из меню среды Turbo Pascal. |
[F1] | Вызов помощи по вопросам работы в текущем окне среды Turbo Pascal. |
[Ctrl] + [F1] | Вызов контекстной помощи (получение подсказки по работе с подсвеченной функцией или процедурой), либо вызов алфавитного перечня всех стандартных процедур, функций и служебных слов. |
[F2] | Сохранение текста программы в файл с расширением .PAS. |
[F3] | Открытие PAS-файла с текстом программы, ранее созданного на диске. |
[Ctrl] + [F3] | Вызов калькулятора стека. |
[Alt] + [F3] | Закрытие текущего окна (например, с текстом программы) в среде Turbo Pascal. |
[Ctrl] + [F5] | Перемещение или изменение размеров текущего окна в среде Turbo Pascal. |
[Alt] + [F5] | Просмотр результатов выполнения программы (вызов "экрана пользователя"). |
[F6] | Смена текущего окна на следующее (например, при открытии одновременно файлов нескольких программ - переход от одной программы к другой). |
[Alt] + [F9] | Компиляция текущей программы (текста PAS-файла в текущем окне). |
[Ctrl] + [F9] | Компиляция и запуск текущей программы. |
[Alt] + [X] | выход из среды Turbo Pascal в Windows/DOS (после окончания работы в среде). |
Графика среды Turbo Pascal
Создание двумерных графических объектов в среде Turbo Pascal возможно при вызове специального графического режима. При этом текстовая информация, которая до подключения графики находилась на "экране пользователя", удаляется графической канвой. Максимальные размеры канвы (холста) для рисования в среде Turbo Pascal составляют 640×480 точек экрана (по горизонтальной оси - 640 точек, по вертикальной оси - 480 точек). Причём, начало координат располагается в верхнем левом углу экрана, а вертикальная ось направлена вниз (см. рисунок).
Все графические изображения строятся в этом прямоугольнике, а координаты точек на холсте - натуральные числа: 0 <= x <= 640, 0 <= y <= 480. По умолчанию цвет графического экрана чёрный, но его можно менять. Также следует заметить, что основным режимом работы среды Turbo Pascal является текстовый режим. Поэтому для поддержания графического режима и возможности просмотра графических объектов в программе необходимо принять соответствующие меры. Например, в конце программы перед закрытием графического режима вставить процедуру READLN; без аргумента, которая будет ожидать от пользователя нажатие клавиши [Enter] для смены режима.
Для работы с графикой в среде Turbo Pascal необходимо наличие графической библиотеки (файла EGAVGA.BGI) и графического модуля (файл GRAPH.TPU). Правила обращения к этим файлам и примеры использования графических команд рассмотрены ниже в тексте конкретной программы.
program grafik;
uses graph;- подключаем графический модуль (файл graph.tpu)
vargd, gm, a, b, n, с: integer; – объявляем целые переменные
x1, y1, x2, y2: integer; – объявляем целые переменные
x,y,h: real; – объявляем действительные переменные
begin
gd:=detect; - определяем вид графического адаптера (SVGA 640x480, 16 цветов)
InitGraph(gd ,gm, 'C:\TP7\BIN'); - инициализация графики (файл egavga.bgi)
SetGraphMode(n); - установить режим работы графического адаптера.
{n=0, 640x400 - изображение искажено
n=1, 640x350 - изображение сжато
n=2, 640x480 – нормальное изображение}
c:=15;
SetBkColor(c); - устанавливаем цвет фона экрана
c:=1;
SetColor(c); - устанавливаем цвет линий и точек при рисовании
с | цвет | с | цвет | |
темно-синий | синий яркий | |||
тёмно-зеленый | светло-зелёный | |||
серо-голубой | небесно-голубой | |||
коричневый | красный (алый) | |||
фиолетовый | сиреневый | |||
оранжевый | желтый | |||
светло-серый | белый | |||
темно-серый | цвет фона / черный |
PutPixel(x1,y1,c); – рисуем точку с координатами x1,y1 цветом с;
SetLineStyle(a, 0, b); – устанавливаем стиль а и толщину b линии.
{Здесь a может быть 0, 1, 2, 3, b может быть 1 или 3}
a=0 a=1 a=2 a=3 |
Line(x1, y1, x2, y2); – рисуем линию от точки x1, y1 до точки x2, y2
MoveTo(x1, y1); - устанавливаем курсор в точку x1, y1 на графическом экране
LineTo(x1, y1); - рисуем линию от текущего положения курсора до точки x1, y1
Rectangle(x1,y2,x2,y2); - рисуем прямоугольник с диагональю x1,y1-x2,y2
Circle(x1,y1,a); - рисуем окружность с центром в точке x1,y1 и радиусом a
Ellipse(x1, y1, a1, a2, Rx, Ry); - рисуем дугу эллипса с центром в точке x1,y1, от центрального угла a1 до угла a2 в градусах (от 0 до 2p ), с полуосями Rx, Ry
OutText(‘string’); – в текущем положении курсора выводим текст “string”
OutTextXY(x1,y1,‘text’); - в точке x1,y1 графического экрана выводим текст “text”
SetFillStyle(a,c); - устанавливаем стиль a (от 1 до 12) и цвет с (от 0 до 15) заливки объектов
а=1 | a=7 | ||
a=2 | a=8 | ||
a=3 | a=9 | ||
a=4 | a=10 | ||
a=5 | a=11 | ||
a=6 | a=12 |
Box(x1,y2,x2,y2); - рисуем залитый прямоугольник с диагональю x1,y1-x2,y2
FillEllipse(x1, y1, Rx, Ry);- рисуем залитый эллипс с центром в точке x1,y1 и полуосями Rx, Ry
FloodFill(x1, y1, c); - заливаем замкнутую фигуру, начиная с точки (x1, y1), цвет границ которой c
ClearDevice; - очистим графический экран (залить все цветом фона)
ReadLn; - ждем нажатия клавиши Enter (задержка картинки на экране)
CloseGraph; - отключаем графику (перейти в текстовый режим)
end. - конец программы
Пример готовой программы с комментариями
Program grafika_Tp;
uses graph; {подключаем графический модуль. Как правило, им заведут файл graph.tpu в Turbo Pascal'e и Borland Pascal'e}
var gd,gm: integer; {Две эти графические переменные целого типа понадобятся в дальнейшем для инициализации графики}
x1,y1,x2,y2: integer; {целые координаты на графическом экране}
x,y: real; {действительные переменные в какой либо программе, которые, например, затем нужно проиллюстрировать графически}
S : string;
BEGIN {начало программы}
gd:=detect; {автоопределение типа графического адаптера, т.е. EGA (старый тип) или VGA (он же SVGA или Vesa - новый тип)}
INITGRAPH(gd,gm,'BGI');
setgraphmode(2);
Setbkcolor(15); {Процедура устанавливает цвет фона. Её аргумент - номер цвета. В данном случае 15=белый.}
Setcolor(8);
Line(10,20,600,100);
MoveTo(200,300);
LineTo(300,200);
SetLineStyle(2,0,3);
LineTo(100,100);
x1:=320; y1:=240; {Координаты центра экрана}
putpixel(x1,y1,12); {Процедура рисует точку с координатами x1, y1 цвета 12=красный}
putpixel(x1+2,y1,1); {А рядом рисуем точку синего цвета 1=синий. Эти точки очень маленькие, но их можно рассмотреть}
SetLineStyle(0,0,1);Setcolor(2);
Ellipse(x1,y1,10,90,100,200);
Ellipse(x1,y1,0,360,150,150);
x1:=150;y1:=10;x2:=310;y2:=220;
Rectangle(x1, y1, x2, y2);
Str(x1/9,S);
S:='x1/9='+S;
OutTextXY(100,400,S);
SetLineStyle(0,0,3);Setcolor(12);
x:=-3*Pi; {Начало отрезка}
MoveTo(Round(x*30+300),Round(480-sin(x)*30-100));
while x<=3*Pi do begin {Пока не достигнут конец отрезка - выполняй}
y:=sin(x);
x1:=Round(x*30+300); y1:=Round(480-y*30-100);
LineTo(x1,y1);
x:=x+0.1;
end;
readln;
closegraph;
end.
Результат выполнения программы: