Архітектура ПК
[1]
Архітектура та експлуатація персонального комп'ютера
|
СПЗ
[12]
Системне програмне забезпечення та операційні системи
|
Комп'ютерна графіка [25] |
КСМ
[28]
Комп'ютерні системи та мережі
|
ІСІТО
[1]
Інформаційні системи і технології обліку
|
Бухгалтерський облік [0] |
АМтП
[10]
Алгоритмічні мови та програмування
|
Копирайт рерайт [1] |
СУБД
[18]
Системи управління базами даних
|
ОКТ практикум
[2]
Основи комп'ютерних технологій практикум
|
Інформатика (практ)
[1]
інформатика практикум, практичні заняття
|
ТіОБВ
[61]
Технологія і організація будівельного виробництва
|
ОСАПр
[6]
Основи систем автоматизованого проектування, AutoCAD, ArchiCAD
|
ТіОБВ (заочники) [1] |
09:58 Світлофор | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Цель работы - создать программу, выполняющую следующие действия: 1. После запуска программы в окне изображается светофор с тремя лампочками, способными реагировать на наведение указателя мыши. 2. Когда указатель мыши наведен на лампочку, она меняет свой цвет. ![]() Рис. 34. 3. Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка. Описание плана разработки программы 1. Открыть новый проект. 2. Разместить на форме экземпляры компонентов: фигура Shape. 3. Выполнить следующие действия: Таблица 14.
Продолжение таблицы 14.
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. Сохраните проект, запустите и протестируйте его. Листинг подпрограммы Function OnShape (sh: TShape: X, Y: Integer): TBrushStyle; var r, cx, cy, d2: Integer; begin r := sh.Width div 2; cx := sh.Left + r; cy := sh.Top + r; d2 := (X - cx) * (X - cx) + (Y - cy) * (Y - cy); OnShape := bsClear; if d2 > r*r then ObShape := bsSolid; end; procedure TForm1.FormMouseMove (Sender: TObject, Shift: TShiftState; X, Y: Integer);); begin Shape1.Brush.Color := clRed; Shape1.Brush.Style := OnShape (Shape1, X, Y); Shape2.Brush.Color := clYellow; Shape2.Brush.Style := OnShape (Shape2, X, Y); Shape3.Brush.Color := clLime; Shape.Brush.Style := OnShape (Shape3, X, Y); end; | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Всього коментарів: 0 | |