Студопедия Главная Случайная страница Обратная связь

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

Задание №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; просмотров: 601. Нарушение авторских прав; Мы поможем в написании вашей работы!




Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

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

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

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