Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа по драйверу мыши (№11).doc
Скачиваний:
4
Добавлен:
04.09.2019
Размер:
128 Кб
Скачать
  1. Порядок выполнения работы

Порядок выполнения заданий по данной лабораторной работе можно представить следующим типовым алгоритмом:

  1. Подключите графический модуль, и модуль мыши.

  2. Объявите все необходимые глобальные переменные.

  3. Инициализируйте графический режим.

  4. Сделайте мышь видимой с помощью процедуры mshow.

  5. Определите область для рисования ограничением перемещения курсора мыши, и выделите эту область графически.

  6. Организуйте цикл, выход из которого осуществляется нажатием любой клавиши на клавиатуре.

  7. В созданном цикле реализуйте алгоритм построения графических примитивов.

  8. После выхода из цикла выполните выход из графического режима.

Примечание: Начало фигуры должно быть построено с помощью процедуры 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 и выводим координаты положения мыши на экран}

{закрываем графический режим}