Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
63
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

Лабораторная работа 19. Мыши и модули

I. Как работать с мышью

Задание 1

Скопируйте в свой подкаталог файлы mouse1.pas, mouse2.pas, drmouse.pas и graph0.pas.

1.1. Как работает манипулятор "мышь"

Что такое манипулятор "мышь", Вы уже знаете. Манипулятор подключается к компьютеру и может работать только тогда, когда в оперативную память загружен драйвер мыши (т.е. программа, обеспечивающая взаимодействие с данным манипулятором).

Для взаимодействия Вашей программы с драйвером мыши используются прерывания.

Прерывание - в терминах DOS - это подпрограмма, отвечающая за обработку какого-либо события. Свое название прерывания получили оттого, что если в момент работы программы к процессору пришло сообщение от какого-то внутреннего или внешнего устройства, то, в зависимости от важности полученного сообщения, выполнение программы может быть приостановлено, выполнится соответствующая случаю подпрограмма, после чего процессор вновь займется прерванной задачей.

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

1.2. Начинаем программировать управление мышью

Чтобы не вдаваться подробно в механизм такой работы (это достаточно сложно), давайте воспользуемся библиотекой DrMouse, в которой размещаются процедуры и функции по работе с манипулятором мышь.

  • Если Вам очень хочется посмотреть, как устроены эти процедуры, можете скопировать в свой подкаталог файл DrMouse.pas и просмотреть его.

Задание 2

Прежде чем начинать программировать работу с мышью, убедитесь, что драйвер мыши загружен. Если Вы работаете в среде Norton Commander или Tubro Pascal, то сделать это достаточно просто: найдите на экране красный прямоугольничек или белую стрелочку (так может выглядеть указатель мыши). Если он есть, значит, драйвер загружен. Если его нет, подвигайте манипулятор “мышь” - может быть указатель мыши спрятался за экран. Если и это не помогает, значит, следует проконсультироваться с преподавателем о том, как запустить драйвер мыши.

Задание 3

Запустите среду Turbo Pascal. Загрузите текст программы из файла mouse1.pas. Разберитесь в тексте программы. Выпишите в тетрадь название библиотеки с "мышиными" подпрограммами, назначение функции InitMouse, процедуры SetMouseXY, MouseOn и GetMouseXY.

Задание 4

Измените программу mouse1.pas так, чтобы она завершала работу не по нажатию определенной клавиши, а при попадании курсора мыши в прямоугольник с заданными координатами. Когда сделаете, пригласите преподавателя - пусть проверит.

Задание 5

Загрузите программу mouse2.pas. Разберитесь в тексте программы. Выпишите в тетрадь назначение функции GetMouseBut.

Задание 6

Измените программу так, чтобы она завершала работу при нажатии на правую кнопку мыши в случае, если курсор мыши находится на "большом" квадрате, причем цвет квадрата должен быть светло-голубой.

Задание 7

Напишите простейшую программу - счетчик. Суть: на экран выводится прямоугольное окошко с числом и курсор мыши. Установка курсора мыши внутрь этого окна и щелчок левой кнопки мыши увеличивает число в окне на 1, правой - уменьшает на 1.

Задание 8*

Реализуйте программу, представляющую собой фрагмент графического редактора, называемый "резиновый прямоугольник". Суть алгоритма:

1) с помощью манипулятора "мышь" устанавливаем курсор мыши в произвольное место экрана;

2) щелчок левой кнопки "гасит" курсор мыши (воспользуйтесь процедурой MouseOff без параметров), и на этом месте появляется белая точка;

3) дальнейшее движение мыши "растягивает" прямоугольник (первая точка является одним концом диагонали прямоугольника, а невидимый курсор мыши - вторым);

4) повторный щелчок левой кнопки мыши фиксирует изображение прямоугольника и восстанавливает курсор мыши (процедура mouse_on без параметров);

5) щелчок правой кнопки мыши отменяет выполняемую операцию;

6) ограничьте движение курсора мыши с помощью процедуры mouse­Window(x1,x2,y1,y2:word).

  • После проверки программы пригласите преподавателя. Ему тоже хочется посмотреть на Ваше произведение.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]