www.pudn.com > Producer&cusuom.rar > Unit1.cpp


//--------------------------------------------------------------------------- 
 
#include  
#pragma hdrstop 
#include "Unit1.h" 
//--------------------------------------------------------------------------- 
#pragma package(smart_init) 
#pragma resource "*.dfm" 
TForm1 *Form1; 
TProducterThread *Thread5;//=new TProducterThread(false); 
TStreamProduct *Thread1; 
TStreamProduct *Thread2,*Thread3,*Thread4,*TmpProducterThread; 
freeproducts *lpHead; 
freeproducts *lpEnd; 
freeproducts *Tmppt; 
TCriticalSection *TQ; 
//--------------------------------------------------------------------------- 
__fastcall TForm1::TForm1(TComponent* Owner) 
        : TForm(Owner) 
{ 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Button1Click(TObject *Sender) 
{ 
  if(Timer2->Enabled==false) 
    {Timer2->Enabled=true;} 
  else 
  { 
   if(Button1->Caption=="停工") 
    { 
     Thread5->Suspend(); 
    //TQ->Acquire(); 
     Button1->Caption="开工"; 
    //TQ->Release(); 
    } 
   else 
    { 
     Thread5->Resume(); 
      //TQ->Acquire(); 
     Button1->Caption="停工"; 
     //TQ->Release(); 
    } 
  } 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Button2Click(TObject *Sender) 
{ 
  if(Button2->Caption=="挂起") 
   { 
    Thread1->Suspend(); 
    //TQ->Acquire(); 
    Button2->Caption="唤醒"; 
    //TQ->Release(); 
   } 
  else 
   { 
    Thread1->Resume(); 
    //TQ->Acquire(); 
    Button2->Caption="挂起"; 
    //TQ->Release(); 
   } 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Button4Click(TObject *Sender) 
{ 
 if(Button4->Caption=="挂起") 
   { 
    Thread3->Suspend(); 
    //TQ->Acquire(); 
    Button4->Caption="唤醒"; 
   // TQ->Release(); 
   } 
  else 
   { 
    Thread3->Resume(); 
    //TQ->Acquire(); 
    Button4->Caption="挂起"; 
    //TQ->Release(); 
   } 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Button3Click(TObject *Sender) 
{ 
 if(Button3->Caption=="挂起") 
   { 
    Thread2->Suspend(); 
   // TQ->Acquire(); 
    Button3->Caption="唤醒"; 
    //TQ->Release(); 
   } 
  else 
   { 
    Thread2->Resume(); 
    //TQ->Acquire(); 
    Button3->Caption="挂起"; 
    //TQ->Release(); 
   } 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Button5Click(TObject *Sender) 
{ 
  if(Button5->Caption=="挂起") 
   { 
    Thread4->Suspend(); 
    //TQ->Acquire(); 
    Button5->Caption="唤醒"; 
    //TQ->Release(); 
   } 
  else 
   { 
    Thread4->Resume(); 
   // TQ->Acquire(); 
    Button5->Caption="挂起"; 
    //TQ->Release(); 
   } 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Timer1Timer(TObject *Sender) 
{ 
  Timer1->Enabled=false; 
  if(Button2->Enabled==false) 
   { 
    if(lpHead!=NULL&&lpEnd!=NULL) 
     { 
      Thread1=NULL; 
      Thread1=lpHead->TSP; 
      //TQ->Acquire(); 
      if(lpHead==lpEnd) 
       { 
        free(lpHead); 
        lpHead=NULL; 
        lpEnd=NULL; 
       } 
      else 
       { 
        Tmppt=lpHead; 
        lpHead=lpHead->PTRStread; 
        free(Tmppt); 
       } 
      //TQ->Release(); 
      Thread1->InitStread(ProgressBar2,Button2,Edit2); 
      Thread1->Resume(); 
     Button2->Enabled=true; 
     } 
   } 
  if(Button3->Enabled==false) 
   { 
    if(lpHead!=NULL&&lpEnd!=NULL) 
     { 
      Thread2=NULL; 
      //TQ->Acquire(); 
      Thread2=lpHead->TSP; 
      if(lpHead==lpEnd) 
       { 
        free(lpHead); 
        lpHead=NULL; 
        lpEnd=NULL; 
       } 
      else 
       { 
        Tmppt=lpHead; 
        lpHead=lpHead->PTRStread; 
        free(Tmppt); 
       } 
      //TQ->Release(); 
      Thread2->InitStread(ProgressBar3,Button3,Edit3); 
      Thread2->Resume(); 
      Button3->Enabled=true; 
     } 
   } 
  if(Button4->Enabled==false) 
   { 
    if(lpHead!=NULL&&lpEnd!=NULL) 
     { 
      Thread3=NULL; 
      //TQ->Acquire(); 
      Thread3=lpHead->TSP; 
      if(lpHead==lpEnd) 
       { 
        free(lpHead); 
        lpHead=NULL; 
        lpEnd=NULL; 
       } 
      else 
       { 
        Tmppt=lpHead; 
        lpHead=lpHead->PTRStread; 
        free(Tmppt); 
       } 
     // TQ->Release(); 
      Thread3->InitStread(ProgressBar4,Button4,Edit4); 
      Thread3->Resume(); 
      Button4->Enabled=true; 
     } 
   } 
  if(Button5->Enabled==false) 
   { 
    if(lpHead!=NULL&&lpEnd!=NULL) 
     { 
      Thread4=NULL; 
     // TQ->Acquire(); 
      Thread4=lpHead->TSP; 
      if(lpHead==lpEnd) 
       { 
        free(lpHead); 
        lpHead=NULL; 
        lpEnd=NULL; 
       } 
      else 
       { 
        Tmppt=lpHead; 
        lpHead=lpHead->PTRStread; // 
        free(Tmppt); 
       } 
      Thread4->InitStread(ProgressBar5,Button5,Edit5); 
     // TQ->Release (); 
      Thread4->Resume(); 
      Button5->Enabled=true; 
     } 
   } 
  //Timer2->Enabled=true; 
  Timer1->Enabled=true; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::FormCreate(TObject *Sender) 
{ 
  Thread1=NULL; 
  Thread2=NULL; 
  Thread3=NULL; 
  Thread4=NULL; 
  Thread5=NULL; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::FormDestroy(TObject *Sender) 
{ 
  free(Thread1); 
  free(Thread2); 
  free(Thread3);            // 
  free(Thread4); 
  free(Thread5); 
  if(lpHead!=NULL) 
   { 
    while(lpHead!=NULL) 
     { 
      Tmppt=lpHead; 
      if(lpHead!=lpEnd) 
        lpHead=lpHead->PTRStread; 
      else 
       { 
        lpHead=NULL; 
        lpEnd=NULL; 
       } 
      free(Tmppt); 
     } 
   } 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::Timer2Timer(TObject *Sender) 
{ 
   //Timer1->Enabled=false; 
   Timer2->Enabled=false; 
   if(Button1->Caption=="开始演示"||Button1->Enabled==false) 
   { 
    Thread5=new TProducterThread(true); 
    Thread5->ProductThing(ProgressBar1,Button1,Edit1); 
    Thread5->Resume(); 
    //TQ->Acquire(); 
    Button1->Caption="停工"; 
    Button1->Enabled=true; 
    //TQ->Release(); 
   } 
   //Timer1->Enabled=true; 
   Timer2->Enabled=true; 
} 
//--------------------------------------------------------------------------- 
void __fastcall TForm1::ExitClick(TObject *Sender) 
{ 
  if(Button2->Enabled==true) 
   { 
    Thread1->Suspend(); 
    Thread1->Terminate(); 
    free(Thread1); 
   } 
  if(Button3->Enabled==true) 
   { 
    Thread2->Suspend(); 
    Thread2->Terminate(); 
    free(Thread2); 
   } 
  if(Button4->Enabled==true) 
   { 
    Thread3->Suspend(); 
    Thread3->Terminate(); 
   } 
  free(Thread3); 
  if(Button5->Enabled==true) 
   { 
    Thread4->Suspend(); 
    Thread4->Terminate(); 
   } 
  free(Thread4); 
  if(Button1->Enabled==true) 
   { 
    Thread5->Suspend(); 
    Thread5->Terminate(); 
   } 
  free(Thread5); 
  if(lpHead!=NULL) 
   { 
    while(lpHead!=NULL) 
     { 
      Tmppt=lpHead; 
      if(lpHead!=lpEnd) 
        lpHead=lpHead->PTRStread; 
      else 
       { 
        lpHead=NULL; 
        lpEnd=NULL; 
       } 
      free(Tmppt); 
     } 
   } 
 Close(); 
} 
//--------------------------------------------------------------------------- 
 
void __fastcall TForm1::N1Click(TObject *Sender) 
{ 
 Timer2->Enabled=false; 
 Button1->Caption="开始演示"; 
 if(Button2->Enabled==true) 
   { 
    Thread1->Suspend(); 
    Thread1->Terminate(); 
    free(Thread1); 
   } 
  if(Button3->Enabled==true) 
   { 
    Thread2->Suspend(); 
    Thread2->Terminate(); 
    free(Thread2); 
   } 
  if(Button4->Enabled==true) 
   { 
    Thread3->Suspend(); 
    Thread3->Terminate(); 
   } 
  free(Thread3); 
  if(Button5->Enabled==true) 
   { 
    Thread4->Suspend(); 
    Thread4->Terminate(); 
   } 
  free(Thread4); 
  if(Button1->Enabled==true) 
   { 
    Thread5->Suspend(); 
    Thread5->Terminate(); 
   } 
  free(Thread5); 
  if(lpHead!=NULL) 
   { 
    while(lpHead!=NULL) 
     { 
      Tmppt=lpHead; 
      if(lpHead!=lpEnd) 
        lpHead=lpHead->PTRStread; 
      else 
       { 
        lpHead=NULL; 
        lpEnd=NULL; 
       } 
      free(Tmppt); 
     } 
   } 
  ProgressBar1->Position=0; 
  ProgressBar2->Position=0; 
  ProgressBar3->Position=0; 
  ProgressBar4->Position=0; 
  ProgressBar5->Position=0; 
  Edit1->Text="0"; 
  Edit2->Text="0"; 
  Edit3->Text="0"; 
  Edit4->Text="0"; 
  Edit5->Text="0"; 
  Button2->Enabled=false; 
  Button3->Enabled=false; 
  Button4->Enabled=false; 
  Button5->Enabled=false; 
} 
//---------------------------------------------------------------------------