//--------------------------------------------------------------------------- #ifndef ComH #define ComH //--------------------------------------------------------------------------- typedef void __fastcall (__closure *TReadComProc)(AnsiString); class TCom: public System::TObject { public: TReadComProc OnReadCom; //example: //void __fastcall TMainForm::ReadCom(AnsiString Data) __fastcall TCom(); virtual __fastcall ~TCom(); bool __fastcall OpenCom(unsigned char Port); void __fastcall SetBaud(unsigned long Baud); void __fastcall CloseCom(); unsigned long __fastcall WriteCom(AnsiString Data); private: //COM port access variables HWND hCom; DCB ComDCB; //Asynchronous read variables OVERLAPPED osReader, osWriter; SmallString<255> InBuf; unsigned long BytesRead; AnsiString InLin; TTimer *InTime; bool __fastcall StartRead(); void __fastcall InTimeTimer(TObject *Sender); }; //--------------------------------------------------------------------------- #endif