Лабораторная работа №7

Использование компонентов кнопок, индикаторов, управляющих элементов

 

Задание 1.

 

Методика создания приложения

 

 

  1. Создадим новый проект.
  2. Расположим на форме компоненты, согласно рисунку.

  1. Заполним свойство Items компонентов RadioGroup, установим свойство ItemIndex равным 0.
  2. Установим свойство GroupIndex у компонентов SpeedButton равным 1, Свойство AllowAllUp равным false.
  3. Установим свойство Gliph у компонентов BitBtn и SpeedButton.
  4. Для компонентов Timer установим свойство Interval равным 0, свойство Enabled равным true.
  5. Для компонента TrackBar установим свойства Min равным 0, Max равным 30, Frequency равным 5, Position равным 15.

 

  1. Напишем обработчики событий:

 

Выход из программы

Close();

 

Управление доступностью кнопки BitBtn

if (RadioGroup1->ItemIndex == 0 ) {

            BitBtn1->Enabled=true; //-Доступна

            }

else BitBtn1->Enabled = false; //-Недоступна

 

Запуск таймера

if (SpeedButton1->Down == true)  //-Если кнопку нажали

            {

            //-Запуск обоих таймеров

            //-Второй таймер нужен для отображения прогресса

            //-в компонентах ProgressBar и CGauge

            Timer1->Interval = TrackBar1->Position*1000;

            Timer2->Interval = Timer1->Interval/100;

            //-Вывод сообщения о времени срабатывания

            ShowMessage("Таймер сработает через "+

                  IntToStr(Timer1->Interval/1000)+ " сек.");

            }

 

Действия по срабатыванию основного таймера

//-По первой радиокнопке

if (RadioButton1->Checked == true) {

            ShowMessage("Таймер остановлен");

}

//-По второй радиокнопке

if (RadioButton2->Checked == true) {

            ShowMessage("Работа завершена");

            Close();

}

//-По третьей радиокнопке

if (RadioButton3->Checked == true) {

            if (Form7->Color != clBlue) Form7->Color = clBlue;

            else Form7->Color=clRed;

}

//-Останавливаем таймеры

Timer1->Interval =0;

Timer2->Interval = 0;

//-Очищаем ход прогресса

ProgressBar1->Position = ProgressBar1->Min;

CGauge1->Progress = CGauge1->MinValue;

//-Программно нажимаем кнопку остановки таймера

SpeedButton2->Down = true;

 

Остановка таймера по нажатию кнопки

Timer1->Interval =0;

Timer2->Interval = 0;

ProgressBar1->Position = ProgressBar1->Min;

CGauge1->Progress = CGauge1->MinValue;

ShowMessage("Таймер остановлен");

 

Приращение прогресса по срабатыванию вторго таймера

ProgressBar1->Position=

            ProgressBar1->Position+ProgressBar1->Max/100;

LabeledEdit1->Text=

            Timer1->Interval*ProgressBar1->Position/

            ProgressBar1->Max/1000;

LabeledEdit2->Text =

            (Timer1->Interval-Timer1->Interval*

            ProgressBar1->Position/ProgressBar1->Max)/1000;

CGauge1->Progress =

            CGauge1->Progress +  CGauge1->MaxValue/100;

 

Изменение внешнего вида компонента CGauge

      switch (RadioGroup2->ItemIndex)

      {

            case 0: CGauge1->Kind = gkHorizontalBar; break;

            case 1: CGauge1->Kind = gkNeedle; break;

            case 2: CGauge1->Kind = gkPie; break;

            case 3: CGauge1->Kind = gkText; break;

            case 4: CGauge1->Kind = gkVerticalBar; break;

      }

 

 

Hosted by uCoz