亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? 用Delphi寫的網絡聊天工具
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
unit Unit1;

interface

uses
  winsock,Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ScktComp,GeneralSource, ExtCtrls, Grids, DBGrids, Db, ADODB,
  Buttons, Menus, ImgList, ToolWin, ComCtrls, ActnList, AppEvnts,
  RzTray, RzCommon;

const
  UM_RESTORE_APPLICATION=WM_User+101;

type
  TSession=Record
    Msg:string;
    Handle:string;
    Param1:string;
    Param2:string;
    Param3:string;
    Param4:string;
    Param5:string;
    Param6:string;
  end;

  TForm1 = class(TForm)
    s: TServerSocket;
    Image1: TImage;
    Panel1: TPanel;
    Splitter1: TSplitter;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Label1: TLabel;
    Splitter2: TSplitter;
    ListBox2: TListBox;
    Image2: TImage;
    ListBox1: TListBox;
    Panel5: TPanel;
    Panel6: TPanel;
    Memo1: TMemo;
    Panel7: TPanel;
    Memo2: TMemo;
    MainMenu1: TMainMenu;
    N11: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    B1: TMenuItem;
    S1: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    E1: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    U1: TMenuItem;
    ImageList1: TImageList;
    ActionList1: TActionList;
    Timer1: TTimer;
    N10: TMenuItem;
    StatusBar1: TStatusBar;
    Splitter3: TSplitter;
    Label2: TLabel;
    Panel8: TPanel;
    BitBtn3: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn1: TBitBtn;
    Panel9: TPanel;
    Label3: TLabel;
    G1: TMenuItem;
    ControlBar1: TControlBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton9: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolBar2: TToolBar;
    RzTrayIcon1: TRzTrayIcon;
    Action1: TAction;
    ini: TRzRegIniFile;
    procedure sClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure sClientError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure ListBox2DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    procedure BitBtn3Click(Sender: TObject);
    procedure E1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure U1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure B1Click(Sender: TObject);
    procedure G1Click(Sender: TObject);
  private
    { Private declarations }
    UserName,Sex:string;
    procedure UpUser(Handle:integer;ID,Host,Address:string;Logined:integer);
    function SelectUser(ID,PasswordA:string;a,b,c:integer;var UserName,Sex:string):Boolean;
    procedure GetUserList(Handle:integer;ID,UserName,Sex:string);
    procedure GetUserList1(Handle:integer;ID,SearchID, SearchName:string);
    procedure GetUserInfoByID(ID:String);
    procedure ClearOffUser;
    function GetTextID(Text: string; BreakSymbol: string = '.'): string;
    function GetTextName(Text: string; BreakSymbol: string = '.'): string;
    procedure UMRestoreApplication(var Message : TMessage); message UM_RESTORE_APPLICATION;
    procedure StrToList(Str: string; var List: TStrings;BreakSymbol: string = ';');
    function StringsToStr(Str: string;BreakSymbol: string = ';'): string;
    procedure WMQueryEndSession(var Msg: TMessage);message WM_QueryEndSession;
    procedure CloseTheInstance;
    procedure ReturnGameCommand(MyHandle,UserHandle,CommandStr,Param1,Param2,Param4,Param5:string);
  public
    { Public declarations }
    RecText:PPs;
    Logined:Boolean;
    Locked:Boolean;
    UserList:Tstrings;
    UserRemark:array of string;
    CommandStr:string;

    function NewID(Handle:integer=0):string;
    procedure UpdateState;
    procedure SendAllUser(Handle:integer;UserName,Sex,Logined,Registered,ID:string);
    procedure InsUser(ID:string;UserName,PasswordA,Host,Address:string;
      Handle:integer;Logined,Sex:integer;Remark:string;ImageIndex:integer);
    procedure BrowseUser;
    function GetIndexByHandle(Handle:integer):integer;
    procedure SendBy(cs:TCustomWinSocket;Msg,Handle,Param1,Param2,Param3,Param4,Param5,Param6:string);       
  end;

var
  Form1: TForm1;

implementation

uses ChatSource, Unit2, Unit3, Unit4, Unit5, Unit7;

{$R *.DFM}

procedure xx(n,s:string);
var
  Txtfile:TextFile;
begin
  Assignfile(Txtfile,n);
  if fileExists(n) then
    Append(Txtfile)
  else
    Rewrite(Txtfile);
  try
    writeln(Txtfile,s);
  finally
    closefile(Txtfile);
  end;
end;

function TForm1.GetTextID(Text: string; BreakSymbol: string = '.'): string;
var
  I: Integer;
begin
  I := Pos(BreakSymbol, Text);
  if I > 0 then
    Result := Copy(Text, 1, I - 1)
  else Result := Text;
end;

function TForm1.GetTextName(Text: string; BreakSymbol: string = '.'): string;
var
  I: Integer;
begin
  I := Pos(BreakSymbol, Text);
  if I > 0 then
    Result := Copy(Text, I + Length(BreakSymbol),
      Length(Text) - I - Length(BreakSymbol) + 1)
  else Result := Text;
end;

procedure TForm1.sClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
  Tmps:String;
  i:integer;
  ID:string;
  Txtfile:TextFile;
  UserInfoList:TStrings;
  Session:TSession;
  MyHandle,UserHandle,Param1,Param2,Param4,Param5:string;
begin
  Tmps:=Socket.ReceiveText;
  RecText:=nil;
  RecText:=GetSession(Pchar(Tmps),7);
  Session.Msg:=RecText^[0];
  Session.Handle:=RecText^[1];
  Session.Param1:=RecText^[2];
  Session.Param2:=RecText^[3];
  Session.Param3:=RecText^[4];
  Session.Param4:=RecText^[5];
  Session.Param5:=RecText^[6];
  Session.Param6:=RecText^[7];

  if Session.Msg<>'T' then
    if Session.Msg<>'A' then
    begin
      ListBox2.Items.Add(DateTimetoStr(Now)+'   '+Tmps);
      Assignfile(Txtfile,'Sys.log');
      if fileExists('Sys.log') then
        Append(Txtfile)
      else
        Rewrite(Txtfile);
      try
        writeln(Txtfile,ListBox2.Items.Strings[ListBox2.Items.Count-1]);
      finally
        closefile(Txtfile);
      end;
      if ListBox2.Items.Count =21 then
        ListBox2.Items.Delete(0);
    end;

  if Session.Msg='admin' then
  begin
    Memo1.Lines.Add(Session.Param1);
    SendMessage(Memo1.Handle,EM_SCROLL,SB_BOTTOM,0);
    flashwindow(Application.handle,true);
  end;

  case Ord(Session.Msg[1]) of
    Ord('W')://添加好友
    begin
      chat.RealTemp.Close;
      chat.RealTemp.SQL.Clear;
      chat.RealTemp.SQL.Add('insert into Groups(ID,SubID)');
      chat.RealTemp.SQL.Add('values('+''''+Session.Param1+''','''+Session.Param2+''''+')');
      chat.RealTemp.ExecSQL;
      SelectUser(session.Param2,'A',0,0,1,UserName,Sex);
      if Session.Param5='1' then
      begin
        SendBy(Socket,'G',inttostr(chat.qryUserHandle.Value),
          Session.Param3,Session.Param4,Session.Param5,'1',Session.Param2,'1')
      end
      else
      begin
        SendBy(Socket,'G',inttostr(chat.qryUserHandle.Value),
          Session.Param3,Session.Param4,Session.Param5,'2',Session.Param2,'1')
      end;    //通知自己已添加好友
    end;
    Ord('G')://查找用戶
    begin
      GetUserList1(Socket.SocketHandle,Session.Param1,Session.Param2,Session.Param3); //客戶取得用戶列表
    end;
    Ord('J')://中斷游戲
      begin
        i:=GetIndexbyHandle(strtoint(Session.Param3));
        SendBy(s.Socket.Connections[i],'J',Session.Handle,Session.Param2,'','','','','');
      end;
    Ord('P')://開始 游戲(測試)
      begin
        MyHandle:=Session.Param3;
        UserHandle:=Session.Handle;
        Param1:=Session.Param1;
        Param2:=Session.Param2;
        Param4:=Session.Param4;
        Param5:=Session.Param5;
        CommandStr:=CommandStr+Session.Param6+#13;
        ReturnGameCommand(MyHandle,UserHandle,CommandStr,Param1,Param2,Param4,Param5);
        MyHandle:='';
        UserHandle:='';
        CommandStr:='';
        Param1:='';
        Param2:='';
        Param4:='';
        Param5:='';
      end;
    Ord('V')://接受游戲
      begin
        i:=GetIndexbyHandle(strtoint(Session.Param3));
        SendBy(s.Socket.Connections[i],'V',Session.Param1,Session.Param2,Session.Param3,Session.Param4,'',Session.Param5,'');
      end;
    Ord('K')://拒絕游戲
      begin
        i:=GetIndexbyHandle(strtoint(Session.Param4));
        SendBy(s.Socket.Connections[i],'K',Session.Param1,Session.Param2,Session.Param3,'','',Session.Param5,'');
      end;
    Ord('I'):// 詢問游戲是否開始
      begin
        SelectUser(session.Param4,'A',0,0,1,UserName,Sex);
        i:=GetIndexbyHandle(strtoint(Session.Handle));
        SendBy(s.Socket.Connections[i],'I',Session.Param2,Session.Param1,Session.Param3,Session.Param4,Session.Param2,inttostr(byte(chat.qryUserLogined.Value)),'');
      end;
    Ord('D')://清除掉線用戶
      begin
        ClearOffUser;
        BrowseUser;
      end;
    Ord('N')://文件傳輸失敗
      begin
        i:=GetIndexbyHandle(strtoint(Session.Param3));
        SendBy(s.Socket.Connections[i],'N',Session.Handle,Session.Param2,'','','','','');
      end;
    Ord('Y')://取消接收文件
      begin
        i:=GetIndexbyHandle(strtoint(Session.Param4));
        SendBy(s.Socket.Connections[i],'Y',Session.Param1,Session.Param2,Session.Param3,'','',Session.Param5,'');
      end;
    Ord('O')://用戶確認接收文件
      begin
        i:=GetIndexbyHandle(strtoint(Session.Param2));
        SendBy(s.Socket.Connections[i],'C',Session.Param2,Session.Param1,Session.Param3,Session.Handle,'','','');
      end;
    Ord('S')://傳輸文件
      begin
        i:=GetIndexbyHandle(strtoint(Session.Handle));
        SendBy(s.Socket.Connections[i],'Q',Session.Param2,Session.Param1,Session.Param3,Session.Param4,Session.Param2,'','');
      end;
    Ord('M')://測試連接
      begin
        i:=GetIndexbyHandle(Socket.SocketHandle);
        SendBy(s.Socket.Connections[i],'M','','','','','','','');
      end;
    Ord('X')://修改個人記錄
      begin
        Chat.UpTemp.Close ;
        Chat.UpTemp.SQL.Clear ;
        Chat.UpTemp.SQL.Add('Update UserInfo');
        Chat.UpTemp.SQL.Add('Set UserName='''+Session.Param1+'''');
        Chat.UpTemp.SQL.Add(',Sex='+Session.Param2);
        Chat.UpTemp.SQL.Add(',PasswordA='''+GetTextName(Session.Param3)+'''');
        Chat.UpTemp.SQL.Add(',ImageIndex='+Session.Param4);
        Chat.UpTemp.SQL.Add(',Remark='''+Session.Param5+'''');
        Chat.UpTemp.SQL.Add('Where ID='''+Session.Param6+'''');
        Chat.UpTemp.SQL.Add('and PasswordA='''+GetTextID(Session.Param3)+'''');
        Chat.UpTemp.ExecSQL;

        if Chat.UpTemp.RowsAffected=1 then
        begin
          for i:=0 to UserList.Count-1 do
            if Session.Param6=GetTextID(UserList.Strings[i],';') then
            begin
              Chat.UpTemp.SQL.Clear;
              Chat.UpTemp.SQL.Add('Select Host,Address,Handle from UserInfo');
              Chat.UpTemp.SQL.Add('where ID='''+Session.Param6+'''');
              Chat.UpTemp.Open;
              UserList.Strings[i]:=Session.Param6+';'+
                                   Session.Param1+';'+
                                   Chat.UpTemp.Fields[0].Text+';'+
                                   Chat.UpTemp.Fields[1].Text+';'+
                                   Session.Param4+';'+
                                   Session.Param2+';'+
                                   Chat.UpTemp.Fields[2].Text;
              UserRemark[i]:=Session.Param5;
              Chat.UpTemp.Close;
              Break;
            end;
          i:=GetIndexbyHandle(Socket.SocketHandle);
          SendBy(s.Socket.Connections[i],'X','','','','','','','');
        end
        else
        begin
          i:=GetIndexbyHandle(Socket.SocketHandle);
          SendBy(s.Socket.Connections[i],'X','','Error','','','','','');
        end;
        i:=ListBox1.Items.IndexOf(Session.Param6+'('+Session.Handle+')');
        ListBox1.Items.Strings[i]:=Session.Param6+'('+Session.Param1+')'
      end;
    Ord('B')://取得本人信息
      begin
        i:=GetIndexbyHandle(Socket.SocketHandle);
        GetUserInfoByID(Session.Param1);
        SendBy(s.Socket.Connections[i],'B','',Chat.Temp.fieldbyname('UserName').AsString,
               Chat.Temp.fieldbyname('ID').AsString,
               Chat.Temp.fieldbyname('ImageIndex').AsString,
               Chat.Temp.fieldbyname('Sex').AsString,
               Chat.Temp.fieldbyname('Remark').AsString,'');
        Chat.Temp.Close ;
      end;
    Ord('U')://返回聊天用戶信息
      begin
        tag:=GetIndexbyHandle(strtoint(Session.Handle));
        UserInfoList:=TStringList.Create;
        for i:=0 to UserList.Count-1 do
          if Session.Param2=GetTextID(UserList.Strings[i],';') then
          begin
            StrtoList(UserList.Strings[i],UserInfoList);
            SendBy(s.Socket.Connections[tag],'U',

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本二三区不卡| 久久精品男人的天堂| 91精品国产日韩91久久久久久| 久久无码av三级| 香蕉成人伊视频在线观看| 国产剧情一区二区三区| 欧美色老头old∨ideo| 国产精品久久久久久妇女6080| 天天综合日日夜夜精品| 色综合久久久网| 欧美国产视频在线| 国内精品久久久久影院色| 欧美亚洲国产bt| 亚洲美腿欧美偷拍| 99久久精品99国产精品| 国产偷v国产偷v亚洲高清| 日韩电影在线看| 懂色av一区二区夜夜嗨| 久久一日本道色综合| 久久99精品国产91久久来源| 欧美高清视频一二三区| 午夜精品福利一区二区三区av | 久久久九九九九| 麻豆精品视频在线观看视频| 色屁屁一区二区| 亚洲欧美偷拍卡通变态| 91亚洲精品乱码久久久久久蜜桃| 国产精品污污网站在线观看 | 国产日韩欧美高清在线| 国产高清不卡一区二区| 久久久蜜桃精品| 国产成人精品aa毛片| 国产视频在线观看一区二区三区| 国产一区二区三区最好精华液 | 91精品免费观看| 日本女人一区二区三区| 欧美一级日韩不卡播放免费| 日本午夜一区二区| 久久亚洲综合av| 国产福利一区二区| 亚洲欧洲精品一区二区三区| av一区二区三区| 亚洲一区二区三区四区在线 | 高清在线成人网| 国产精品久久久久久久裸模| 91尤物视频在线观看| 亚洲在线视频免费观看| 欧美年轻男男videosbes| 蜜臀av性久久久久av蜜臀妖精| 日韩欧美激情一区| 国产大片一区二区| 亚洲人成网站精品片在线观看| 在线欧美小视频| 麻豆一区二区三| 中文字幕免费一区| 欧美性猛交一区二区三区精品| 五月天视频一区| 久久久精品综合| 色婷婷综合久久久久中文| 亚洲成人在线免费| 久久精品夜夜夜夜久久| 91麻豆视频网站| 精品一区免费av| 亚洲欧美另类在线| 日韩欧美一级在线播放| 懂色av一区二区在线播放| 亚洲高清久久久| 国产精品区一区二区三区| 在线观看91视频| 国产成人精品亚洲777人妖| 亚洲一区二区五区| 久久久噜噜噜久久人人看| 日本丰满少妇一区二区三区| 国产美女精品一区二区三区| 亚洲男人天堂av网| 久久免费看少妇高潮| 欧美亚洲综合一区| 成人精品小蝌蚪| 青青草视频一区| 樱花影视一区二区| 国产日产欧美一区| 欧美精品黑人性xxxx| 99久久婷婷国产| 国产伦精品一区二区三区视频青涩 | 日韩一区二区三区精品视频| 成人99免费视频| 精品一区二区成人精品| 一二三区精品视频| 国产亚洲一二三区| 欧美一级一区二区| 欧美日韩免费一区二区三区| 成人午夜电影网站| 久久精品免费看| 天天综合日日夜夜精品| 亚洲综合激情另类小说区| 国产视频一区二区三区在线观看| 欧美一区二区三区公司| 欧美日韩久久一区二区| 91麻豆国产福利精品| 成人午夜又粗又硬又大| 国产精品白丝av| 久久电影网站中文字幕| 日本在线不卡一区| 午夜电影网亚洲视频| 一区二区久久久久久| 亚洲精品久久久蜜桃| 中文字幕在线免费不卡| 亚洲国产成人午夜在线一区| 久久亚洲欧美国产精品乐播 | 亚洲视频网在线直播| 亚洲国产精品成人综合色在线婷婷| 欧美成人福利视频| 欧美电影免费提供在线观看| 欧美日韩成人综合在线一区二区| 欧美日韩你懂得| 欧美日韩在线电影| 欧美另类videos死尸| 91 com成人网| 日韩免费一区二区| 久久久久久久综合狠狠综合| 久久久精品中文字幕麻豆发布| 国产日产欧美一区二区三区| 国产精品拍天天在线| 亚洲欧美日韩一区| 亚洲午夜在线电影| 日韩国产一二三区| 九九九精品视频| 成人性色生活片免费看爆迷你毛片| 成人免费的视频| 色丁香久综合在线久综合在线观看 | 欧美videos中文字幕| 久久理论电影网| 18成人在线观看| 亚洲国产成人av网| 久久99国产精品尤物| 成人性视频免费网站| 欧美又粗又大又爽| 日韩女优视频免费观看| 国产精品色哟哟网站| 亚洲成人免费av| 韩国三级在线一区| hitomi一区二区三区精品| 欧美在线观看18| 26uuu亚洲综合色| 亚洲黄色av一区| 九色综合狠狠综合久久| 99久久精品国产一区二区三区| 欧美日韩一区国产| 久久免费国产精品| 亚洲成人高清在线| 国产精品一区二区久久精品爱涩| 色婷婷av一区| wwwwxxxxx欧美| 亚洲第一会所有码转帖| 丰满亚洲少妇av| 欧美日韩免费在线视频| 久久精品人人爽人人爽| 亚洲va国产天堂va久久en| 国产精品18久久久| 欧美一区二区三区在线| 日韩美女精品在线| 激情小说亚洲一区| 欧美伦理影视网| 中文字幕日韩一区二区| 精品一区二区日韩| 欧美男男青年gay1069videost| 久久精品网站免费观看| 午夜婷婷国产麻豆精品| 91麻豆自制传媒国产之光| 久久色在线视频| 日日夜夜精品免费视频| 色视频成人在线观看免| 中文字幕巨乱亚洲| 国内不卡的二区三区中文字幕| 色8久久人人97超碰香蕉987| 国产欧美日韩在线观看| 日韩avvvv在线播放| 欧美午夜免费电影| 亚洲免费观看高清完整| 成人永久aaa| 久久久国产精华| 久久99国产精品尤物| 日韩一区二区在线观看| 丝袜亚洲精品中文字幕一区| 色婷婷香蕉在线一区二区| 国产精品视频线看| 高清国产一区二区三区| 久久久久久久久久电影| 精品一区二区三区视频在线观看| 欧美日本在线播放| 亚洲电影激情视频网站| 欧美色精品天天在线观看视频| 亚洲激情六月丁香| 一本大道久久a久久精品综合| 中文乱码免费一区二区| 成人久久视频在线观看| 亚洲欧洲成人精品av97| 99久久久免费精品国产一区二区| 国产精品激情偷乱一区二区∴| 国产精品影音先锋|