«Светофор»
Цель работы - создать программу, выполняющую следующие действия:
1. После запуска программы в окне изображается светофор с тремя лампочками, способными реагировать на наведение указателя мыши.
2. Когда указатель мыши наведен на лампочку, она меняет свой цвет.
3. Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка.
Описание плана разработки программы
1. Открыть новый проект.
2.Разместить на форме экземпляры компонентов: фигура Shape.
3.Выполнить следующие действия:
Таблица 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. Сохраните проект, запустите и протестируйте его.