Архітектура ПК
[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 | |