LCSOFT技术论坛
一个由 LCSOFT组织维护的技术论坛。
首页 搜索 用户列表 FAQ 注册 登录  
LCSOFT技术论坛 » 技术专区 » C++Builder天地 » 请教一个程序!!!
  请教一个程序!!!
帖子发起人: 三块小石头   发起时间: 2007-05-16 10:01 下午   回复数: 0
« 上一主题 下一主题 »
楼主
  2007-05-16, 10:01 下午
三块小石头 离线,最后访问时间: 2007-5-17 18:52:59 三块小石头

发帖数前150位

士兵
等级: 士兵
注册: 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 地址: 已登录   来自: 已登录    返回顶部
 第 1 页 总共 1 页 [共有 1 条记录]
LCSOFT技术论坛 » 技术专区 » C++Builder天地 » 请教一个程序!!!
版权所有 © LCSOFT  粤ICP备06035424号