Студопедия — Задание №11. Часы
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Задание №11. Часы






Цель занятия: Научиться рисовать графические изображения на форме

Студенты должны
знать: модули для работы с датой и временем

уметь: подключать модули для работы с датой и временем, программировать приложение Часы

Задание.

1. Выберите в меню Пуск – Программы - CodeGear RAD Studio2009
C++Builder 2009

2. Создание новое приложение (FileNewVCL Forms Application).

a. Проектирование интерфейса приложения.

а). Переименуйте название формы на Часы.

б). Добавьте компонент Timer1 на приложение.

b. Программирование приложения

а). Включите модули для работы с датой и временем, а также
с математическими функциями после строки #include " Unit1.h"

#include " DateUtils.hpp"

#include " math.h"

б). Опишите переменные

Int x0, y0;

Int ahr, amin, asec;

#define R 100

в). Напишите программный код в конструкторе формы:

__fastcall TForm1:: TForm1(TComponent* Owner)

: TForm(Owner)

{

TDateTime t;

ClientHeight=(R+30)*2; //задание размера формы в соответствии с размером циферблата

ClientWidth=(R+30)*2;

x0=R+30;

y0=R+30;

t=Now(); //текущее время

ahr=90-HourOf(t)*30-(MinuteOf(Today())/12)*6; //Определение положения стрелок

amin=90-MinuteOf(t)*6;

asec=90-SecondOf(Today())*6;

Timer1-> Interval=1000; //период сигнала от таймера 1 секунда

Timer1-> Enabled=true; //пуск таймера

}

г). Перейдите на модуль Unit1.h. Измените описание класса TForm1: добавьте описание двух процедур:

class TForm1: public TForm

{

__published: // IDE-managed Components

TTimer *Timer1;

Void __fastcall DrawClock(void);

Void __fastcall Vector(int x0, int y0, int a, int l);

private: // User declarations

public: // User declarations

__fastcall TForm1(TComponent* Owner);

};

д). Напишите процедуру для рисования линии (стрелок):

void __fastcall TForm1:: Vector(int x0, int y0, int a, int l)

{

#define TORAD 0.0174532 //коофициент перерасчёта угла из градусов в радианы

Int x, y;

Canvas-> MoveTo(x0, y0);

x=x0+l*cos(a*TORAD);

y=y0-l*sin(a*TORAD);

Canvas-> LineTo(x, y);

}

е). Напишите процедуру для изображения стрелок:

void __fastcall TForm1:: DrawClock(void)

{

TDateTime t;

Canvas-> Pen-> Color=clBtnFace; //стереть изображение стрелок

Canvas-> Pen-> Width=3

Vector(x0, y0, ahr, R-20);; //часовую

Vector(x0, y0, amin, R-15); //минутную

Vector(x0, y0, asec, R-7); //секундную

t=Now();

ahr=90-HourOf(t)*30-(MinuteOf(t)%12)*6; //новое положение стрелок

amin=90-MinuteOf(t)*6;

asec=90-SecondOf(t)*6;

Canvas-> Pen-> Width=3; //нарисовать стрелки

Canvas-> Pen-> Color=clBlack;

Vector(x0, y0, ahr, R-20);

Canvas-> Pen-> Width=2;

Canvas-> Pen-> Color=clBlack;

Vector(x0, y0, amin, R-15);

Canvas-> Pen-> Width=1;

Canvas-> Pen-> Color=clYellow;

Vector(x0, y0, asec, R-7);

}

ж). Напишите процедуру для прорисовки циферблата на событие onPaint для формы Form1:

void __fastcall TForm1:: FormPaint(TObject *Sender) //прорисовка циферблата

{







Дата добавления: 2014-11-10; просмотров: 582. Нарушение авторских прав; Мы поможем в написании вашей работы!



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Классификация холодных блюд и закусок. Урок №2 Тема: Холодные блюда и закуски. Значение холодных блюд и закусок. Классификация холодных блюд и закусок. Кулинарная обработка продуктов...

ТЕРМОДИНАМИКА БИОЛОГИЧЕСКИХ СИСТЕМ. 1. Особенности термодинамического метода изучения биологических систем. Основные понятия термодинамики. Термодинамикой называется раздел физики...

Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия