//---------------------------------------------------------------------------
#ifndef ChatServerMainFormH
#define ChatServerMainFormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "IdBaseComponent.hpp"
#include "IdComponent.hpp"
#include "IdContext.hpp"
#include "IdCustomTCPServer.hpp"
#include "IdTCPServer.hpp"
#include <ExtCtrls.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
enum TDirection
{
dirSEND,
dirRECV,
dirNEITHER
};
class TfrmChatServerMain : public TForm
{
__published: // IDE-managed Components
TPanel *pnlBottom;
TLabeledEdit *ledtCommand;
TButton *btnBroadcast;
TCheckBox *chkInsertLinesAtTop;
TPanel *Panel1;
TLabeledEdit *ledtPort;
TButton *btnStart;
TIdTCPServer *tcpServer;
TRichEdit *mmoHistory;
TStatusBar *StatusBar1;
void __fastcall btnStartClick(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall tcpServerExecute(TIdContext *AContext);
void __fastcall tcpServerConnect(TIdContext *AContext);
void __fastcall tcpServerDisconnect(TIdContext *AContext);
void __fastcall tcpServerAfterBind(TObject *Sender);
void __fastcall btnBroadcastClick(TObject *Sender);
private:
void UpdateOutput(const String& s, TDirection dir = dirNEITHER);
void BroadcastMessage(const String& s);
public:
__fastcall TfrmChatServerMain(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TfrmChatServerMain *frmChatServerMain;
//---------------------------------------------------------------------------
#endif