Выбрать главу

Рассмотрим еще несколько полезных подпрограмм.

* Window (x1,y1,x2,y2) – создание окна вывода. В случае задания окна, все операторы write и writeln выводят только в него, процедура ClrScr будет очищать только это окно.

* WhereX, WhereY – две функции, позволяющие узнать координаты местонахождения курсора. Пример использования : GotoXY(WhereX+10,WhereY+2).

Задание №2:

Напишите программу «Визитная карточка», которая выводила бы на экран хорошо оформленные ваши личные данные: имя, фамилию, год рождения, адрес, телефон.

Используйте разные цвета, хорошо скомпонуйте.

Задание №2*:

Модуль Sounds содержит процедуры и функции для работы со звуком:

n:=LoadSound(fname) – загружает звук из файла с именем fname в оперативную память и возвращает описатель звука в целую переменную n (звуковой файл должен может иметь любой формат);

PlaySound(n) – начинает проигрывание звука с описателем n;

StopSound(n) – останавливает проигрывание звука с описателем n;

RewindSound(n) – "перематывает" звук с описателем n на начало ;

DestroySound(n) – удаляет звук с описателем n из оперативной памяти, описатель звука при этом становится недействительным ;

SoundLength(n) – возвращает длительность звука с описателем n в миллисекундах.

Используйте его возможности для «улучшения» программы «Визитная карточка»

Пример использования модуля sound:

Program Player;

Uses Sounds, CRT;

var n: integer;

begin

n:=LoadSound ('C:\WINDOWS\MEDIA\ringin.wav '); // укажите расположение файла

PlaySound (n);

Sleep(SoundLength (n));

DestroySound (n);

end.

- 10 -

Тема №3 Графический модуль GraphABC

Система ABC Pascal обладает великолепной графической библиотекой. Для ее модключения после заголовка программы необходимо написать Uses GraphABC. Модуль GraphABC содержит константы, типы, процедуры и функции для рисования в графическом окне. Они подразделяются на несколько групп:

* Графические примитивы

* Действия с кистью

* Действия с цветом

* Действия со шрифтом

* Действия с точками и прямоугольниками

* Действия с рисунками

* Действия с пером

* Действия с графическим окном

Рассмотрим сразу пример:

Program Gr01;

Uses GraphABC;

begin

SetWindowSize(256,256);

SetPenColor(RGB(0,0,255));

Line(0,0, WindowWidth, WindowHeight)

Line(0,WindowHeight, WindowWidth, 0)

end.

Процедура SetWindowSize устанавливает размер графического окна 256×256 пикселей.

Процедура SetPenColor определяет цвет рисования линий. Функция RGB возвращает цвет, заданный своими Red, Green, Blue компонентами. Процедура Line рисует линию из точки, заданной первой парой координат, в точку, заданную второй парой координат. Функции WindowWidth и WindowHeight возвращают текущие значения ширины и высоты графического окна (следовательно, если вы поменяете размер окна в процедуре SetWindowSize, то линии все равно будут проводиться из угла в угол).

Оконные координаты

* Координата x растет слева на право от 0 до значения WindowWidth

* Координата y растет сверху вниз от 0 до значения WindowHeight

- 11 -

Задание цвета

Как известно восприятие цвета у человека трехцветное. Основываясь на этом, в графических библиотеках используется именно такое трехкомпонентное представление цвета. Цвет задается с помощью функции rgb(Red, Green,Blue)

Здесь

* Red – число от 0 до 255, соответствующее интенсивности красной компоненты

* Green – число от 0 до 255, соответствующее интенсивности зеленой компоненты

* Blue – число от 0 до 255, соответствующее интенсивности синей компоненты

Функция формирует целое число (integer), которое может использоваться везде в графической библиотеке, где требуется указание цвета. Есть несколько предопределенных цветов:

clBlack – черный

clCream – кремовый

clPurple – фиолетовый

clAqua – бирюзовый

clWhite – белый

clOlive – оливковый

clMaroon – темно-красный

clFuchsia – сиреневый

clRed – красный

clTeal – сине-зеленый

clNavy – темно-синий

clGray – серый

clGreen – зеленый

clLime – ярко-зеленый

clBrown – коричневый

clLightGray – светло-серый

clBlue – синий

clMoneyGreen – цвет зеленых денег

clSkyBlue – голубой

clDarkGray – темно-серый

clYellow – желтый

Задание стиля и цвета пера

* SetPenColor(цвет) – устанавливает цвет пера, задаваемый параметром color.

* SetPenWidth(ширина) – устанавливает ширину пера.

* SetPenStyle(стиль) – устанавливает стиль пера (сплошной, пунктир и т.п.), возможные значения указаны в таблице (стиль применим только к ширине пера 1 пиксел)

psSolid

psDash

psDashDot

psClear

psDot

psDashDotDot

Текущее перо используется для рисования линий, прямоугольников, ломаных, окружностей, эллипсов, дуг и т.п.

Пример:

Program Gr02;

Uses GraphABC;

Var i : integer;

begin

SetWindowSize(512,512);

SetPenStyle(psDash);

SetBrushStyle(bsClear);

Circle (256,256,WindowHeight div 2);

end.

- 12 -

Задание стиля и цвета кисти

* SetBrushColor(цвет) – устанавливает цвет кисти

* SetBrushPicture(имя файла) – устанавливает в качестве образца для закраски кистью образец, хранящийся в файле, при этом текущий цвет кисти при закраске игнорируется.

* ClearBrushPicture – очищает рисунок-образец, выбранный для кисти.

* SetBrushStyle(стиль) – устанавливает стиль кисти, задаваемый параметром bs.

Возможные стили кисти:

bsSolid bsClear bsCross bsDiagCross bsHorizontal bsBDiagonal bsVertical bsFDiagonal

Текущей кистью закрашиваются все замкнутые фигуры, контур фигур рисуется текущим пером. Чтобы нарисовать не закрашенную фигуру, используйте SetBrushColor(bsClear).

Пример:

Program Gr03;

Uses GraphABC;

Var i,j : integer;

begin

SetWindowSize(512,512);

SetBrushColor(rgb(128,0,255));

SetBrushStyle(bsDiagCross);

Rectangle(10,10,WindowWidth-10,WindowHeight-10);

end.

Некоторые графические примитивы[6]

* Line(x1, y1, x2, y2) – рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).

вернуться

6

Дополнительную информацию можно получить в справочной системе ABC Pascal, раздел Стандартные модули – Модуль GraphABC.