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 г.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.