Практическая работа № 14
«Светофор»
Цель работы- создать программу, выполняющую следующие действия:
1. После запуска программы в окне изображается светофор с тремя лампочками, способными реагировать на наведение указателя мыши.
2. Когда указатель мыши наведен на лампочку, она меняет свой цвет.
|
3. Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка.
Описание плана разработки программы
1. Открыть новый проект.
2.Разместить на форме экземпляры компонентов: фигура Shape.
3.Выполнить следующие действия:
Таблица 14. Свойства проекта 14
Выделенный объект | Вкладка окна Object Inspector | Имя свойства/ имя события | Действие | |
Form1 | Properties | Caption | Установка имени формы «Светофор» | |
Height | Присвоить значение 300 | |||
Width | Присвоить значение 120 | |||
BorderIcons (Служебные кнопки) | Выбрать для подсвойства biMinimize (Сворачивание) и biMaximize (Разворачивание) значение False | |||
Color | Задать стандартный серый цвет | |||
BorderStyle (Стиль рамки) | Выбрать значение bsSingle | |||
Events | OnMouseMove | В процедуру передаются дополнительные параметры: Shift – указывает, не была ли при перемещении нажата клавиша SHIFT, CTRL или ALT; X - горизонтальная координата указателя мыши; Y - вертикальная координата указателя. | ||
Продолжение таблицы 14. | ||||
Выделенный объект | Вкладка окна Object Inspector | Имя свойства/ имя события | Действие | |
Shape1 (Вкладка Additional) | Properties | Height | Присвоить значение 61 | |
Width | Присвоить значение 61 | |||
Shape (Форма) | Выбрать значение stCircle (Круг) | |||
Pen (Контур) | Выбрать для подсвойства Color (Цвет) значение clRed (красный цвет) | |||
Brush (Кисть) | Выбрать для подсвойства Style (стиль) значение bsClear (прозрачный) | |||
Enabled (Включен) | Выбрать значение False (Нет) | |||
Shape2 (Вкладка Additional) | Properties | Height | Присвоить значение 61 | |
Width | Присвоить значение 61 | |||
Shape | Выбрать значение stCircle (Круг) | |||
Pen | Выбрать для подсвойства Color (Цвет) значение clYellow (желтый цвет) | |||
Brush | Выбрать для подсвойства Style значение bsClear | |||
Enabled (Включен) | Выбрать значение False (Нет) | |||
Shape3 (Вкладка Additional) | Properties | Height | Присвоить значение 61 | |
Width | Присвоить значение 61 | |||
Shape | Выбрать значение stCircle (Круг) | |||
Pen | Выбрать для подсвойства Color (Цвет) значение clLime (ярко-зеленый цвет) | |||
Brush | Выбрать для подсвойства Style значение bsClear | |||
Enabled (Включен) | Выбрать значение False (Нет) |
4. Написать функцию OnShape, которая вызывается из процедуры FormMouseMove.
5. Работа функции определяет следующие события:
Если указатель мыши не наведен на лампочку, то ее цвет будет прозрачным.
Если указатель мыши наведен на лампочку, то ее цвет будет соответствовать цветам светофора.
r := sh.Width div 2; {r - радиус фигуры}
cx := sh.Left + r; {cx, cy – координаты центра фигуры}
cy := sh.Top + r;
d2 := (X – cx) * (X – cx) + (Y – cy) * (Y – cy); {d2 – квадрат расстояния от центра}
OnShape := bsClear; {указатель мыши не наведен на лампочку, т.е. находиться за пределами фигуры}
if d2 > r*r then ObShape := bsSolid; {указатель мыши наведен на лампочку, т.е. находиться внутри фигуры}
6. Выравнивание элементов:
1) Выделить все три фигуры.
2) Выбрать команду Edit → Align (Правка → Выровнить).
3) Откроется диалоговое окно Alignment (Выравнивание).
4) Установить слева переключатель Center in Window (Центрировать в окне).
5) Установить справа переключатель Space Equally (С равными промежутками).
6) Щелкнуть на кнопке OK.
7. Сохраните проект, запустите и протестируйте его.
Дата добавления: 2014-12-02; просмотров: 1609;