Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум ОА Цымбалюк.doc
Скачиваний:
21
Добавлен:
29.08.2019
Размер:
2 Мб
Скачать
☆

Задание №6. Работа с графикой. Вывод текста. Программа Приветствие

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

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

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

Задание.

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

  2. Создание новое приложение (File – New – VCL Forms Application).

      1. Проектирование интерфейса приложения. Переименуйте заголовок формы на Приветствие!

      2. Измените цвет формы по своему усмотрению.

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

      1. Описание переменных

#include "DateUtils.hpp" // включите данный модуль для работы с датой и временем

AnsiString sMouth[]={"","января","февраля","марта","апреля","мая","июня", "июля","августа","сентября","октября","ноября","декабря"};

      1. На событие формы onPaint напишите процедуру:

void __fastcall TForm1::FormPaint(TObject *Sender)

{

int h; //текущее время

AnsiString mes; //сообщение

int wt, ht; //размер области вывода текста

int x,y; //координаты вывода текста

h=HourOf(Now());

if (h<=4) mes="Доброй ночи";

else if (h<12) mes="Доброе утро";

else if (h<=16) mes="Добрый день";

else mes="Добрый вечер";

Form1->Font->Name = "Times New Roman";

Form1->Canvas->Font->Size = 20;

wt=Canvas->TextWidth(mes); //определение размера области вывода текста

ht=Canvas->TextHeight(mes);

x=(ClientWidth - wt) / 2;

y=ClientHeight / 2-ht;

Canvas->Brush->Style=bsClear; //чтобы область была прозрачной

Canvas->TextOutA(x,y,mes);

y=y+ht; //нижняя граница области вывода текста

mes = FormatDateTime("Сегодня d", Now()); //дата и день недели

mes = mes + " " +sMouth[MonthOf(Now())]+","+FormatDateTime("dddd", Now());

Canvas->Font->Size -=4;

wt= Canvas->TextWidth(mes);

ht=Canvas->TextHeight(mes);

x=(ClientWidth - wt) / 2;

y = y+6;

Canvas ->TextOutA(x,y,mes);

}

      1. Напишите процедуру при изменении размера формы:

Void __fastcall tForm1::FormResize(tObject *Sender)

{

Form1->Refresh();

}

  1. Задание для самостоятельного выполнения:

  1. Измените цвет вывода текста на синий.

  2. Измените размер шрифта, название шрифта, начертание для текста на произвольный

  3. Добавьте в область вывода надпись «Пора работать» в зависимости от времени суток

  4. Добавьте в область вывода надпись «Пора спать» в зависимости от времени суток

  5. Добавьте в область вывода надпись «Отдых», «Работа» в зависимости от времени суток

  6. Добавьте в область вывода надпись «Рабочий день», «Выходной» в зависимости от дня недели

  7. Добавьте в область вывода надпись – текущий год с определением високосный он или нет.

  8. Добавьте сообщение: сколько месяцев осталось до Нового года

  9. Добавьте сообщение: сколько дней осталось до 1 июня

  10. Добавьте сообщение: сколько дней осталось до Нового года

  11. Добавьте сообщение: сколько дней осталось до вашего дня рождения

  12. Добавьте сообщение: сколько дней осталось от сегодняшнего числа до введённой вами даты

Сдайте работу преподавателю

Вопросы для контроля и самоконтроля:

  1. Вывод текста.

  2. Свойство Canvas: методы и свойства.

Задание №7. Мультимедиа. Анимация в С++

Цель занятия: Научиться работать с компонентом Animate

Студенты должны знать: свойства и методы компонента Animate

уметь: программировать компонент Animate

Задание.

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

  2. Создание консольное приложение (File – New – VCL Forms Application).

    1. Проектирование интерфейса приложения: разместите на форму следующие компоненты (смотри рисунок)

      1. Переименуйте форму на Просмотр AVI изображений.

      2. В раздел описания переменных введите:

int CFrame; // номер кадра, отображаемого в режиме просмотра по кадрам

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

      1. Создание функции для открытия AVI файла

        1. Перейдите на программный код Unit1.h

        2. Добавьте после описания используемых компонент описание функции:

void __fastcall OpenAVI(void);

        1. Перейдите на модуль Unit1.cpp. Напишите реализацию процедуры:

void __fastcall TForm1::OpenAVI(void)

{ Button1->Enabled = False;

Button2->Enabled = False;

Button3->Enabled = False;

RadioButton1->Enabled = False;

RadioButton2->Enabled = False;

try

{Animate1->FileName = Edit1->Text;}

catch (Exception &e)

{ShowMessage("Ошибка формата AVI файла.(Анимация не должна сопровождаться звуком.)");}

Button1->Enabled = True;

RadioButton1->Enabled = True;

RadioButton2->Enabled = True;}

      1. Напишите процедуру для нажатия на кнопку Выбрать