//---------------------------------------------------------------------------
#ifndef CppTestFormH
#define CppTestFormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <memory>
#include "SynchedThreads.h"
#include <syncobjs.hpp>
//---------------------------------------------------------------------------
class TCppTest : public TForm
{
__published: // IDE-managed Components
TButton *BeepBtn;
TButton *WaitBtn;
TButton *StopStartMsgWaitBtn;
TButton *InfiniteWaitBtn;
TButton *MsgWaitBtn;
TButton *StopStartWaitBtn;
TButton *EventWaitBtn;
TButton *UntilBtn;
TButton *SpawnBtn;
void __fastcall FormCreate(TObject *Sender);
void __fastcall BeepBtnClick(TObject *Sender);
void __fastcall WaitBtnClick(TObject *Sender);
void __fastcall MsgWaitBtnClick(TObject *Sender);
void __fastcall StopStartWaitBtnClick(TObject *Sender);
void __fastcall StopStartMsgWaitBtnClick(TObject *Sender);
void __fastcall InfiniteWaitBtnClick(TObject *Sender);
void __fastcall EventWaitBtnClick(TObject *Sender);
void __fastcall UntilBtnClick(TObject *Sender);
void __fastcall SpawnBtnClick(TObject *Sender);
private: // User declarations
std::auto_ptr<TStopStartThread> Thread;
TWaitThread* WaitThread;
std::auto_ptr<TEvent> UntilFlag;
void Beep(void* Data) { MessageBeep(0); };
void Pause(void* Data) { Sleep(7500); };
void InfinitePause(void* Data) { Sleep(INFINITE); };
protected:
void __fastcall wmClose(TMessage Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_CLOSE, TMessage, wmClose);
END_MESSAGE_MAP(TForm)
public: // User declarations
__fastcall TCppTest(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TCppTest *CppTest;
//---------------------------------------------------------------------------
#endif