|
2007-05-16, 10:01 下午
|
三块小石头
 等级: 士兵
注册: 2007年5月16日
积分: 2
精华: 0
发贴: 1
|
|
|
|
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop
#include "main.h" #include "unit2.h" #include "commom.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" Tmainform *mainform; //--------------------------------------------------------------------------- __fastcall Tmainform::Tmainform(TComponent* Owner) : TForm(Owner) { } //---------------------------------------------------------------------------
void Tmainform::SetUser(AnsiString puser) { user=puser; }
AnsiString Tmainform::GetUser() { return user; }
void Tmainform::SetIp(AnsiString ip) { serverip=ip; }
AnsiString Tmainform::GetIp() { return serverip; }
void Tmainform::SetTableNum(int num) { tablenum=num; }
int Tmainform::GetTableNum() { return tablenum; }
void Tmainform::FreshForm(AnsiString msg) { //ms=<telnet><id1><buser>xqh</buser><wuser>wy</wuser></id1>....</telnet> if (tablenum>=1) myForm->checkwqexit(msg);
AnsiString strtmp,usertmp; //table1 strtmp=GetValueByName(msg,"id1"); usertmp=GetValueByName(strtmp,"buser"); if (usertmp.Length()==0) { t1labelblack->Caption ="无人"; t1btnblack->Enabled =true; } else { t1labelblack->Caption =usertmp; t1btnblack->Enabled =false; } usertmp=GetValueByName(strtmp,"wuser"); if (usertmp.Length()==0) { t1labelwhite->Caption ="无人"; t1btnwhite->Enabled =true; } else { t1labelwhite->Caption =usertmp; t1btnwhite->Enabled =false; }
//table2 strtmp=GetValueByName(msg,"id2"); usertmp=GetValueByName(strtmp,"buser"); if (usertmp.Length()==0) { t2labelblack->Caption ="无人"; t2btnblack->Enabled =true; } else { t2labelblack->Caption =usertmp; t2btnblack->Enabled =false; } usertmp=GetValueByName(strtmp,"wuser"); if (usertmp.Length()==0) { t2labelwhite->Caption ="无人"; t2btnwhite->Enabled =true; } else { t2labelwhite->Caption =usertmp; t2btnwhite->Enabled =false; } //table3 strtmp=GetValueByName(msg,"id3"); usertmp=GetValueByName(strtmp,"buser"); if (usertmp.Length()==0) { t3labelblack->Caption ="无人"; t3btnblack->Enabled =true; } else { t3labelblack->Caption =usertmp; t3btnblack->Enabled =false; } usertmp=GetValueByName(strtmp,"wuser"); if (usertmp.Length()==0) { t3labelwhite->Caption ="无人"; t3btnwhite->Enabled =true; } else { t3labelwhite->Caption =usertmp; t3btnwhite->Enabled =false; } //table4 strtmp=GetValueByName(msg,"id4"); usertmp=GetValueByName(strtmp,"buser"); if (usertmp.Length()==0) { t4labelblack->Caption ="无人"; t4btnblack->Enabled =true; } else { t4labelblack->Caption =usertmp; t4btnblack->Enabled =false; } usertmp=GetValueByName(strtmp,"wuser"); if (usertmp.Length()==0) { t4labelwhite->Caption ="无人"; t4btnwhite->Enabled =true; } else { t4labelwhite->Caption =usertmp; t4btnwhite->Enabled =false; } }
void __fastcall Tmainform::FormCreate(TObject *Sender) { myForm=NULL; tablenum=0;
Form2=new TForm2(Application); Form2->ShowModal(); Caption="大厅-"+user; if (ClientSocket1->Active) return; ClientSocket1->Address =serverip; ClientSocket1->Open (); } //---------------------------------------------------------------------------
void __fastcall Tmainform::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket) { AnsiString s; s=Socket->ReceiveText ();
//验证用户名 和版本是否正确<checkuser> if(s.AnsiPos("<telnet>")!=0) { int telnet=StrToInt(GetValueByName(s,"telnet")); if (telnet==1) { Hide(); ShowMessage("用户名已存在,请重新登陆"); if (ClientSocket1->Active ) ClientSocket1->Close (); if (Form2!=NULL) delete Form2; exit(0); } else if(telnet==0) { Hide(); ShowMessage("客户端版本不对,请获取最新版本!"); if (ClientSocket1->Active ) ClientSocket1->Close (); if (Form2!=NULL) delete Form2; exit(0); } return; }
// 登落和就座的应答,及服务器广播消息,刷新主界面 if(s.AnsiPos("<hall>")!=0) { mainform->FreshForm (s); return; }
//开始棋局 if (s.AnsiPos("<start>")!=0) { if(myForm!=NULL) { delete myForm; myForm=NULL; } myForm=new TForm1(Application); myForm->Caption =user; myForm->initwqp(s); tablenum++; myForm->Show(); return; }
//具体信息,如talk、走棋 if (myForm!=NULL) myForm->actinfo(s);
} //---------------------------------------------------------------------------
void __fastcall Tmainform::FormClose(TObject *Sender, TCloseAction &Action) { if (ClientSocket1->Active ) ClientSocket1->Close (); if (myForm!=NULL) delete myForm; if(Form2!=NULL) delete Form2; } //---------------------------------------------------------------------------
//就座
void __fastcall Tmainform::t1btnblackClick(TObject *Sender) { if (tablenum>=1) { ShowMessage("您只能就座一个,请退出棋盘后再就座 "); return; } AnsiString msg="<sit><id>1</id><type>1</type><user>"+user+"</user></sit>"; ClientSocket1->Socket->SendText (msg); } //---------------------------------------------------------------------------
void __fastcall Tmainform::t1btnwhiteClick(TObject *Sender) { if (tablenum>=1) { ShowMessage("您只能就座一个,请退出棋盘后再就座 "); return; } AnsiString msg="<sit><id>1</id><type>2</type><user>"+user+"</user></sit>"; ClientSocket1->Socket->SendText (msg); } //---------------------------------------------------------------------------
void __fastcall Tmainform::t2btnblackClick(TObject *Sender) { if (tablenum>=1) { ShowMessage("您只能就座一个,请退出棋盘后再就座 "); return; } AnsiString msg="<sit><id>2</id><type>1</type><user>"+user+"</user></sit>"; ClientSocket1->Socket->SendText (msg); } //---------------------------------------------------------------------------
void __fastcall Tmainform::t2btnwhiteClick(TObject *Sender) { if (tablenum>=1) { ShowMessage("您只能就座一个,请退出棋盘后再就座 "); return; } AnsiString msg="<sit><id>2</id><type>2</type><user>"+user+"</user></sit>"; ClientSocket1->Socket->SendText (msg); } //---------------------------------------------------------------------------
void __fastcall Tmainform::t3btnblackClick(TObject *Sender) { if (tablenum>=1) { ShowMessage("您只能就座一个,请退出棋盘后再就座 "); return; } AnsiString msg="<sit><id>3</id><type>1</type><user>"+user+"</user></sit>"; ClientSocket1->Socket->SendText (msg); } //---------------------------------------------------------------------------
void __fastcall Tmainform::t3btnwhiteClick(TObject *Sender) { if (tablenum>=1) { ShowMessage("您只能就座一个,请退出棋盘后再就座 "); return; } AnsiString msg="<sit><id>3</id><type>2</type><user>"+user+"</user></sit>"; ClientSocket1->Socket->SendText (msg); } //---------------------------------------------------------------------------
void __fastcall Tmainform::t4btnblackClick(TObject *Sender) { if (tablenum>=1) { ShowMessage("您只能就座一个,请退出棋盘后再就座 "); return; } AnsiString msg="<sit><id>4</id><type>1</type><user>"+user+"</user></sit>"; ClientSocket1->Socket->SendText (msg); } //---------------------------------------------------------------------------
void __fastcall Tmainform::t4btnwhiteClick(TObject *Sender) { if (tablenum>=1) { ShowMessage("您只能就座一个,请退出棋盘后再就座 "); return; } AnsiString msg="<sit><id>4</id><type>2</type><user>"+user+"</user></sit>"; ClientSocket1->Socket->SendText (msg); } //按钮结束 //---------------------------------------------------------------------------
void __fastcall Tmainform::ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket) { //发送到服务器验证用户名和版本 AnsiString msg="<telnet><user>"+user+"</user><ver>"+ XQH_WQ_VER+"</ver></telnet>"; ClientSocket1->Socket->SendText (msg);
} //---------------------------------------------------------------------------
void __fastcall Tmainform::ClientSocket1Disconnect(TObject *Sender, TCustomWinSocket *Socket) { //用户退出连接 AnsiString msg="<exit>"+user+"</exit>"; ClientSocket1->Socket->SendText (msg); } //---------------------------------------------------------------------------
哪位仁兄帮忙解释一下 啊!
|
|
|
IP 地址: 已登录
来自: 已登录
|
|
|
|
|
|
|
|