Порядок выполнения работы
Порядок выполнения заданий по данной лабораторной работе можно представить следующим типовым алгоритмом:
Подключите графический модуль, и модуль мыши.
Объявите все необходимые глобальные переменные.
Инициализируйте графический режим.
Сделайте мышь видимой с помощью процедуры mshow.
Определите область для рисования ограничением перемещения курсора мыши, и выделите эту область графически.
Организуйте цикл, выход из которого осуществляется нажатием любой клавиши на клавиатуре.
В созданном цикле реализуйте алгоритм построения графических примитивов.
После выхода из цикла выполните выход из графического режима.
Примечание: Начало фигуры должно быть построено с помощью процедуры mpressed, а конец с помощью процедуры mreleased. Другими словами по нажатию кнопки мыши определяем начало фигуры, а после отпускания кнопки конец фигуры.
Пример программы
Ниже приведен пример программы, использующей модуль мыши, которая выводит на экран курсор мыши и его текущие координаты:
uses crt, graph, mouse; Var x, y: integer; strx, stry: string; oldx, oldy: integer; rec: locrec; gDriver, gMode: integer; Begin gDriver:=Detect; gMode:=0; InitGraph(gDriver, gMode,'C:\BP7\BGI'); mshow; mcolrange(40,GetMaxX-40);
mrowrange(40,GetMaxY-40); line(40,40,GetMaxX-40,40); line(40,40,40,GetMaxY-40); line(40,GetMaxY-40,GetMaxX- 40,GetMaxY-40); line(GetMaxX-40,40,GetMaxX- 40,GetMaxY-40); mpos(rec);
oldx:=rec.column; oldy:=rec.row;
mmoveto(40,40);
repeat mpos(rec); x:=rec.column; y:=rec.row; if ((x<>oldx)OR(y<>oldy)) then begin SetColor(BLACK);
OutTextXY(2, 2, ' '); OutTextXY(2, 14,' ');
SetColor(LIGHTGRAY);
Str(x, strx); Str(y, stry);
OutTextXY(2, 2, 'x='+strx); OutTextXY(2, 14, 'y='+stry); end; oldx:=x; oldy:=y; until keypressed; CloseGraph; End.
|
{подключает необходимые модули} {объявляем необходимые переменные}
{инициализация графического режима} {показываем курсор мыши} {устанавливаем минимальные и максимальные границы движения курсора мыши} {рисуем зону движения курсора мыши}
{данные возвращаемые в структуре rec будут сообщать текущее состояние мыши} {присваиваем переменным oldx и oldy значения координат текущего состояния мыши} {перемещаем курсор мыши в заданные координаты} {программа будет выполнять действия этого цикла, пока мы не нажмем клавишу}
{сравним «старые» и «новые» координаты мыши, если положение мыши изменилось, то выполним следующие действия}
{очищаем две строки, где выводится x и y, для этого необходимо между апострофами поставить спец. символ из ASCII с кодом 219 (удерживая клавишу «ALT» наберите код и отпустите клавишу)}
{преобразуем целочисленные значения x и y в строки strx и stry и выводим координаты положения мыши на экран}
{закрываем графический режим}
|
