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

Задание №3. Создание программ с использованием компонента Timer

Цель занятия: Научиться работать с датой и временем

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

уметь: создавать приложения с использованием компонента Timer

Задание.

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

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

  3. Создайте приложение «Угадай число»

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

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

      1. Определение свойств добавленных компонент в программе:

const TR=10; //время для решения задачи

int pw; //загаданное число

int rem=TR; //остаток времени

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

Label2->Caption = IntToStr(TR);

ProgressBar1->Max=TR; //настройка индикатора, начальное значение равно максимальному

ProgressBar1->Position=TR;

ProgressBar1->Step=1; //шаг изменения

ProgressBar1->Smooth = true; //индикатор - полоса

Randomize(); //генератор случайных чисел

pw=Random(9); //загаданное число

}

      1. Напишите процедуру на событие onTimer

Void __fastcall tForm1::Timer1Timer(tObject *Sender)

{

rem--;

ProgressBar1->Position--;

Label2->Caption = IntToStr (rem);

if (rem==0) {

Timer1->Enabled=false;

Edit1->Enabled=false;

Button1->Enabled=false;

ShowMessage("Вы не справились. \n Загаданное число "+IntToStr (pw));

} }

      1. Щелчок по переключателю Полоса

Void __fastcall tForm1::CheckBox1Click(tObject *Sender)

{

if (CheckBox1->Checked)

{

ProgressBar1->Step=1;

ProgressBar1->Smooth = true;

}

else

{

ProgressBar1->Step=6;

ProgressBar1->Smooth = false;

}

}

      1. Нажатие кнопки ОК

Void __fastcall tForm1::Button1Click(tObject *Sender)

{

if (StrToInt(Edit1->Text)==pw) {

Timer1->Enabled=false;

Edit1->Enabled=false;

Button1->Enabled=false;

ShowMessage("Вы справились. \n Вы угадали число за "+IntToStr (TR-rem)+" секунд");

}

}

      1. Самостоятельно напишите процедуру для нажатия клавиши в поле редактирования окна ввода – событие onKeyPress. При написании программы учтите возможность нажатия только клавиш от 0 до 9, клавиши удаления символа и клавиши ввода.

      2. Самостоятельно напишите процедуру на событие onChange компонента Edit1. В данной процедуре учтите, что кнопка ОК должна быть активна только в случае, если длина строки в окне ввода равна 1 символу.

    1. Создайте справочное руководство в формате html и напишите команду для открытия справки:

Void __fastcall tForm1::Button2Click(tObject *Sender)

{

ShellExecute(Form1->Handle, "open", "help.html", NULL,NULL,SW_RESTORE);

}

    1. Добавьте справку о программе в отдельном окне (форме).

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

  1. Добавьте отображение в строке состояния количество прошедших секунд таймера для решения задачи.

  2. Напишите программу для движения надписи слева направо "Я буду сдавать экзамен по программированию" с использованием компонента Timer.

  3. Напишите программу для движения надписи справа налево "Я буду сдавать экзамен по программированию" с использованием компонента Timer.

  4. Напишите программу для движения надписи сверху вниз "Я буду сдавать экзамен по программированию" с использованием компонента Timer.

  5. Напишите программу для движения надписи снизу вверх "Я буду сдавать экзамен по программированию" с использованием компонента Timer.

  6. Напишите программу для движения кнопки "Нажми меня" слева направо с использованием компонента Timer.

  7. Напишите программу для движения кнопки "Нажми меня" справа налево с использованием компонента Timer.

  8. Напишите программу для движения кнопки "Нажми меня" по главной диагонали экрана с использованием компонента Timer.

  9. Напишите программу для движения кнопки "Нажми меня" по побочной диагонали экрана с использованием компонента Timer.

  10. Напишите программу для движения кнопки "Нажми меня" по периметру экрана с использованием компонента Timer.

  11. Напишите программу для движения кнопки "Нажми меня" по нарисованному лабиринту с использованием компонента Timer.

  12. Напишите программу, демонстрирующую работу программы Секундомер

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

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

  1. Что означает свойство Enabled компонента Timer?

  2. На какое событие пишут процедуру при работе с компонентом Timer?

  3. Как добавить справку в формате html для приложения?

  4. Как организовать движение компонентов на форме?