Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по ПР ПМ0_Копец1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.37 Mб
Скачать

Контрольные вопросы

  1. Для чего предназначены радиокнопки?

  2. Для чено предназначен компонент RadioGroup?

  3. Какой компонент служит для нерегулярного расположения кнопок?

  4. Чем отличаются компоненты RadioButton и CheckBox?

  5. Основные свойства компонента CheckBox?

  6. Основные свойства компонента BitBtn?

  7. Чем отличается кнопка SpeedButton от других кнопок?

  8. Назначение компонента UpDown?

  9. Основнык свойства компонента UpDown?

  10. Что представляет собой компонент TrackBar?

  11. Что представляет собой компонент ScrollBar?

Практическая работа №15

Тема: «Использование компонента таймер в приложениях».

Цель работы: Научиться использовать компонент Ttimer в приложениях C++ Builder.

Форма и условия аттестации: после изучения Темы 4.9. Кнопки, индикаторы, управляющие элементы.

Время выполнения: подготовка – 5 мин; выполнение – 165 мин.; проверка – 10 мин; всего – 180 мин.

Теоретические сведения

Компонент Timer позволяет задавать в приложении интервалы времени.

Таймер – невизуальный компонент, который может размещаться в любом месте формы. Компонент TTimer имеет два свойства:

Enabled – устанавливается в значение true, если требуется, чтобы включился системный генератор сообщений WM_Timer.

Interval – задает промежуток времени в миллисекундах между приходом сообщений

Приведем стандартный пример использования таймера - создадим электронные часы (рис.1.).

Рис.1. Использование компонента TTimer

Для этого разместим на форме следующие компоненты TTimer и TLabel (рис.2).

Рис.2. Windows-окно примера при проектировании

Обработчик события OnTimer выглядит следующим образом:

Label2–>Caption=TimeToStr(Time());

Значение свойства Interval установлено в 1000 мс (одна секунда). Текущее время возвращается стандартной функцией Time и затем преобразуется в строку с помощью функции TimeToStr.

Или

Label2–>Caption=Now().TimeString();//присвоение текущего времени

Описание лабораторной работы Задание 1

Поставим на форму со вкладки Standard, компонент Label1, компонент Button1, и компонент Timer1 со вкладки System. Далее выделим компонент Timer1 и в свойствах этого компонента изменим значение Enabled, на false, по умолчанию у этого компонента стоит значение Enabled = true, но нам не нужно чтобы было true, мы сами запустим этот компонент, а также изменим свойство Interval = 1, по умолчанию стоит 1000, но 1000 это слишком долго.

TTimer - это компанент, который может циклически вызывать нужный вам код в заданный промежуток времени. То есть если вы выставите интервал в 5 секунд.

Timer1->Interval = 5000;

А в событии OnTimer у вас будет показываться окошко, например

ShowMessage("Закрой меня :)");

После запуска таймера Timer1->Enabled = true;

Ваша программа будет показывать такие окошки каждые пять секунд. Интервал задаётся в милисекундах, то есть 500 - пол секунды, 1000 - одна секунда.

По умолчанию, свойство Enabled таймера выставленно true - истина, то есть сразу после запуска программы, таймер начнёт рабоать. Но мы хотим запустить его своей кнопкой, так что автоматический запуск нам не нужен. Изменим свойство Enabled в окне Object Inspector на false.

Далее, щелкаем по Button1, быстро два раза, откроется окно редактора кода. Введем этот код:

void __fastcall TForm1::Button1Click(TObject *Sender) { Timer1->Enabled = true; // эта команда, меняет значение таймера на true(истина) }

Теперь нам нужно объявить переменную типа int int a=0;

#include <vcl.h> #pragma hdrstop

#include "Unit1.h" //------------------ #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int a=0;

Далее выделим компонент Timer1 и перейдём к окну Object Inspector, выберем вкладку Events (события). Перед нами будет список событий, поддерживаемых данным компанентом. Там выберем событие OnTimer, это будет не сложно, оно там одно :) и дважды щёлкаем по белому полю, справа от названия.

У вас появится окно, с готовой функцией, такого содержания.

Введем код:

void __fastcall TForm1::Timer1Timer(TObject *Sender) { if (a != 1000) { ++a; Label1->Caption = IntToStr(a); } if (a == 1000) { Timer1->Enabled = false; Label1->Caption = "Hello World!"; } }

Теперь наш компанент, каждые 1 (10,500,1000) милисекунд, будет вызывать необходимый нам код.