Моделирование работы системы слежения за графиком движения автобусов одного маршрута, страница 8

                  Delay = StrToTime(buf);

                  Form1->RadioGroup5->Items->Strings[9] = TimeToStr(CurrentTime);

                  Form1->RadioGroup5->Items->Strings[8] = TimeToStr(CurrentTime+Delay);

                  Form1->RadioGroup5->Items->Strings[7] = TimeToStr(CurrentTime+Delay+Delay);

                  Form1->RadioGroup5->Items->Strings[6] = TimeToStr(CurrentTime+Delay+Delay+Delay);

                  Form1->RadioGroup5->Items->Strings[5] = TimeToStr(CurrentTime+Delay+Delay+Delay+Delay);

                  Form1->RadioGroup5->Items->Strings[4] = TimeToStr(CurrentTime+Delay+Delay+Delay+Delay+Delay);

                  Form1->RadioGroup5->Items->Strings[3] = TimeToStr(CurrentTime+Delay+Delay+Delay+Delay+Delay+Delay);

                  Form1->RadioGroup5->Items->Strings[2] = TimeToStr(CurrentTime+Delay+Delay+Delay+Delay+Delay+Delay+Delay);

                  Form1->RadioGroup5->Items->Strings[1] = TimeToStr(CurrentTime+Delay+Delay+Delay+Delay+Delay+Delay+Delay+Delay);

                  Form1->RadioGroup5->Items->Strings[0] = TimeToStr(CurrentTime+Delay+Delay+Delay+Delay+Delay+Delay+Delay+Delay+Delay);

                  movpr = false;

                }

                LeaveCriticalSection(&Sect1); //входим в критическую секцию

        }

  }

}

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

 if(stop1)

 {

        //запускаем движение 1 автобуса

         CurrentTime = Now(); //Получаем текущее время

        stop1 = false;

        Button2->Caption = "Стоп";

 }

 else

 {

        stop1 = true;

        Button2->Caption = "Пуск";

 }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

    CurrentTime = Now();

    v1 = 0;

    v2 = 0;

    v3 = 0;

    v4 = 0;

    v5 = 0;

    vsr1 = 0;

    vsr2 = 0;

    vsr3 = 0;

    vsr4 = 0;

    vsr5 = 0;

    stop1 = true;

    stop2 = true;

    stop3 = true;

    stop4 = true;

    stop5 = true;

    InitializeCriticalSection(&Sect1);  //инициализируем критическую секцию

    //стартуем потоки управляющие автобусами

     hThread1 = CreateThread(NULL,0,AvtobusThreadFunc1,NULL,0,NULL);  //Создаём(стартуем 1-ый поток)

     hThread2 = CreateThread(NULL,0,AvtobusThreadFunc2,NULL,0,NULL);  //Создаём(стартуем 2-ой поток)

     hThread3 = CreateThread(NULL,0,AvtobusThreadFunc3,NULL,0,NULL);  //Создаём(стартуем 3-ий поток)

     hThread4 = CreateThread(NULL,0,AvtobusThreadFunc4,NULL,0,NULL);  //Создаём(стартуем 4-ый поток)

     hThread5 = CreateThread(NULL,0,AvtobusThreadFunc5,NULL,0,NULL);  //Создаём(стартуем 5-ый поток)

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)

{

   if(hThread1) TerminateThread(hThread1,0);  //Завершаем 1-ый поток

   if(hThread2) TerminateThread(hThread2,0);  //Завершаем 2-ой поток

   if(hThread3) TerminateThread(hThread3,0);  //Завершаем 3-ий поток

   if(hThread4) TerminateThread(hThread4,0);  //Завершаем 4-ый поток

   if(hThread5) TerminateThread(hThread5,0);  //Завершаем 5-ый поток

   if(&Sect1) DeleteCriticalSection(&Sect1); //удаляем кртическую секцию

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

  if(stop2)

 {

        //запускаем движение 2 автобуса

        stop2 = false;

        Button3->Caption = "Стоп";

 }

 else

 {

        stop2 = true;

        Button3->Caption = "Пуск";

 }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

    if(stop3)

    {

        //запускаем движение 3 автобуса

        stop3 = false;

        Button4->Caption = "Стоп";

    }

    else

    {

        stop3 = true;

        Button4->Caption = "Пуск";

    }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

  if(stop4)

  {

        //запускаем движение 4 автобуса

        stop4 = false;

        Button5->Caption = "Стоп";

  }

  else

  {

        stop4 = true;

        Button5->Caption = "Пуск";

  }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)

{

      if(stop5)

      {

        //запускаем движение 5 автобуса

        stop5 = false;

        Button6->Caption = "Стоп";

      }

      else

      {

        stop5 = true;

        Button6->Caption = "Пуск";

      }

}

//---------------------------------------------------------------------------

Список литературы:

1.  Программирование в C++ Builder. А.Я. Архангельский, Бином, Москва, 2003.- 1151 с.

2.  Конспект лекций по курсу Операционные системы лектор Родников В.В. 2010 г.