Работа с клавиатурой и мышью
Лабораторная работа №25
План работы:
1. Проект “Диалог с компьютером”
Разработать проект, задающий вопрос “Вам нравится работать с компьютером?”. При нажатии на любую клавишу клавиатуры должна происходить смена цвета формы на красный, при отпускании цвет должен становиться первоначальным. При нажатии клавиш “Д”, “д”, “Y”, “y” на форме должен выводиться ответ “Приятно слышать”, при нажатии клавиш “Н”, “н”, “N”, “n” – ответ “Сожалею”. На этапе разработки форма должна иметь следующий вид:
a)Создайте новый проект в Delphi и сохраните его в отдельной папке “Диалог с компьютером”;
b)Поместите на форму компонент Label, оформите данный компонент и форму в соответствии с требуемым видом;
c)Так как цвет окна должен меняться при нажатии на любую клавишу, то необходимо использовать событие OnKeyDown для формы. Войдите в процедуру обработки данного события и разберите назначение параметров, которые обозначают следующее:
Sender – указатель на компонент, в котором произошло событие;
Key – определяет нажатую клавишу клавиатуры, при этом не различаются символы кириллицы и латинские, символы верхнего и нижнего регистра;
Shift – параметр является множеством, который может быть пустым или содержит элементы: ssShift (нажата клавиша Shift), ssAlt (нажата клавиша Alt), ssCtrl (нажата клавиша Ctrl);
Для хранения первоначального цвета формы опишите в модуле глобальную переменную FormColor: TColor.
Для изменения цвета формы при нажатии на любую клавишу напишите в процедуре обработки OnKeyDown следующее:
FormColor := Form1.Color;
Form1.Color := clRed;
d)Для изменения цвета формы на первоначальный при отпускании клавиши используется событие OnKeyUp. Назначение параметров этого события аналогично OnKeyDown. В процедуре обработки этого события напишите следующее:
Form1.Color := FormColor;
e)Так как для вывода ответа “Приятно слышать” и “Сожалею” требуется распознавать клавиши, то необходимо использовать событие OnKeyPress. Назначение параметров этого события аналогично OnKeyDown. В процедуре обработки этого события напишите следующее:
case Key of
'Д', 'д', 'Y', 'y': Label1.Caption := 'Приятно слышать';
'Н', 'н', 'N', 'n': Label1.Caption := 'Сожалею';
end;
f)Проверьте работу проекта и объясните, почему при нажатии клавиш 'Д', 'д', 'Y', 'y', 'Н', 'н', 'N', 'n' происходит изменение цвета.
2. Проект “Работа с мышью”
Разработать проект, демонстрирующий работу с мышью (вывод текущих координат, выдача информации о нажатой пользователем кнопки мыши). На этапе выполнения форма должна иметь следующий вид:
a)Создайте новый проект в Delphi и сохраните его в отдельной папке “Работа с мышью ”;
b)Разместите на форме два компонента Label. Свойство Caption первого компонента измените на “Координата X”, свойство Caption второго компонента - “Координата Y”;
c)Разместите на форме ещё две метки, под метками X и Y соответственно, очистите их свойство Caption;
d)При движении указателя мыши по форме необходимо, чтобы текущие координаты мыши выводились в двух последних метках, для этого необходимо использовать событие OnMouseMove для формы. Войдите в процедуру обработки данного события и разберите назначение параметров, обозначающих следующее:
Sender – указатель на компонент, над которым перемещается курсор мыши;
Shift – параметр является множеством, содержит элементы, позволяющие определить, какие кнопки мыши и вспомогательные клавиши (Shift, Ctrl, Alt) нажаты в этот момент;
X, Y – координаты указателя мыши в клиентской области компонента;
Для вывода текущих координат мыши напишите в обработке события OnMouseMove следующее:
Label3.Caption := IntToStr(x);
Аналогично для координаты y.
e)Разместите на форме метку с заголовком “Вы щелкнули”, метку для вывода названия кнопки, которую щелкнул пользователь;
f)При щелчке мыши по форме необходимо, чтобы в последнюю метку выдавалось сообщение о том, какую кнопку мыши пользователь нажал, для этого необходимо использовать событие OnMouseDown для формы. Назначение параметров этого события аналогично OnMouseMove, добавившийся параметр Button определяет, какая кнопка мыши нажата: mbLeft (левая), mbRight (правая).
В зависимости от значения параметра Button выведите в метке сообщение о нажатой кнопки мыши.
g)Проверьте работу проекта.
3. Проект “Поймай мышкой”
Разработайте проект, имитирующий тренажер работы с левой кнопкой мыши. В случайном месте формы появляется графическое изображение (с интервалом в 0,6-0,7 секунды). Необходимо успеть выполнить щелчок левой кнопкой мыши по этому изображению. Количество удачных попаданий фиксируется. Всего попыток – 10. По окончании всех десяти попыток появляется сообщение, уведомляющее о количестве попаданий. На этапе разработки форма должна иметь следующий вид:
a)Создайте новый проект в Delphi и сохраните его в отдельной папке “Поймай мышкой”;
b)Разместите на форме компонент Image. Выберите файл графического изображения для этого компонента. В начале работы приложения компонент должен быть невидимым;
c)Добавьте на форму кнопку «Начали» (по нажатию на нее «тренажер» должен заработать), метку Label (для вывода количества попаданий) и компонент Timer (он будет отсчитывать интервалы времени);
d)После запуска программы необходимо, чтобы Timer был недоступен, установите это с помощью свойства Enabled. Период срабатывания таймера (свойство Interval) установите 700 миллисекунд;
e)Опишите в модуле глобальные переменные numpop – номер попытки и kol – количество попаданий;
f)Обработайте событие OnClick кнопки “Начали” так, чтобы изображение становилось видимым, а таймер - доступным;
g)Количество удачных попаданий по изображению будет фиксироваться с помощью события OnMouseDown компонента Image. Обработайте событие OnMouseDown компонента Image следующим образом: если таймер включен, то количество попаданий увеличивается на 1;
h)Обработайте событие OnTimer компонента Timer по следующим этапам:
· Подключите генератор случайных чисел;
· Свойствам Top и Left компонента Image присвойте значения, полученные случайным образом из диапазона чисел, соответствующем размеру формы;
· Количество попыток увеличьте на одну;
· Если все (десять) попытки закончились, то сообщить количество попаданий, таймер сделать недоступным, изображение невидимым.
i)Проверьте работу проекта.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|