Поместим на форму MyForm компоненты MyTimer, EditTimer, UpDownTime - связанный с компонентом EditTimer, LabelTime, Label1 - Caption = «Установка таймера», расположите его рядом с EditTimer, Label2 - Caption = «Текущее время», расположите его рядом с LableTime, MyProgressBar - отображает ход таймера, ButtonStart - для запуска таймера после его установки.
По истечению заданного времени появляется сообщение «Время вышло!». TMyForm *MyForm;
TProgressBar *MyProgressBar;
void__fastcall TMyForm::TMyForm(TComponent* Owner): Form(Owner)
{
MyProgressBar->Visible = false //до запуска таймера индикатор невидим
MyTimer->Enabled = false; //таймер еще не запущен
}
void __fastcall TMyForm::ButtonStartClick(TObject *Sender)
{
MyTimer->Enabled = true; //запуск таймера
MyProgressBar->Position = 0; //текущая позиция индикатора обнуляется
MyProgressBar->Max = UpDownTime->Position; //макс. Граница индикатора //соответствует заданному пользователем числу в EditTimer
MyProgressBar->Visible = true; //индикатор становится видимым
}
void __fastcall TMyForm::MyTimerTimer(TObject *Sender)
{
//отображение текущего времени в период работы таймера
LabelTime->Caption = Time().FormatString("tt");
//если текущая позиция индикатора меньше максимального значения
|
|
if(MyProgressBar->Position < MyProgressBar->Max)
{ MyProgressBar->Position++; //увеличиваем текущую позицию
if ((MyTimer->Enabled) & (StrToInt(EditTimer->Text)!=0))
//если таймер запущен и установлено его значение
EditTimer->Text=IntToStr(StrToInt(EditTimer->Text)-1);}//уменьшение времени
else //если время истекло
{ MyProgressBar->Visible =false;
MyTimer->Enabled = false;
ShowMessage("Время вышло!"); // вывод сообщения
LabelTime->Caption = "";} }
Контрольные вопросы
1. Для чего предназначен компонент Timer?
- Назовите основные свойства компонента Timer.
- Когда свойство компонента Timer Enabled устанавливается в true?
- В каких случаях испольхуется компонент Timer?
Практическая работа №16
Тема: «Применение панелей общего назначения в интерфейсе пользователя».
Цель работы: Научиться использовать панели общего назначения в приложениях C++ Builder.
Время выполнения: подготовка – 5 мин; выполнение – 165 мин.; проверка – 10 мин; всего – 180 мин.
Описание практической работы