procedure Tmain_form.N2Click(Sender: TObject);  //ÅäÖò˵¥¡ª¡ªÁ¬½Ó
begin
    hClientSocket:=CommInit(ServerIP,CommPortID);
    if  hClientSocket.socket.Connected  then begin
        StatusBar1.Panels[2].Text :='ͨÐÅ:Á¬½Ó...';
    end Else
        Main_form.StatusBar1.Panels[2].Text :='ͨÐÅ:¶Ï¿ª';
end;procedure Tmain_form.N3Click(Sender: TObject);  //ÅäÖò˵¥¡ª¡ª¶Ï¿ª
begin
    hClientSocket.Active :=False;
    StatusBar1.Panels[2].Text :='ͨÐÅ:¶Ï¿ª';
end;procedure Tmain_form.N4Click(Sender: TObject); //ÅäÖò˵¥¡ª¡ªÅäÖÃ
begin
    Application.CreateForm(TCFG_Form,Cfg_Form);
    Cfg_Form.ShowModal;
end;procedure Tmain_form.N6Click(Sender: TObject);  //²Ù×÷²Ëµ¥¡ª¡ª·¢ËÍ£¨¶ÔÊ÷ÐÍÊý¾Ý£©
Var
    Sn,CMDEX:String;
    pNode:TTreeNode;
begin
    if Not hClientSocket.socket.Connected then Begin
        Memo3.Lines.Add('ͨÐŶ˿ڴ¦ÓڶϿª×´Ì¬£¬ÇëÁ¬½Óºó·¢ËÍ');
        Exit;
    End;
    pNode:= TreeView1.Selected;//Ê÷µ±Ç°Ñ¡Öнáµã
    Sn:=PMyRec(pNode.Data)^.Sn;
    If Length(Trim(Sn))<>4 Then Begin
        ShowMessage('Select Correct Command');
        Exit;
    End;
    Memo3.Clear;
    CMDEX:=PMyRec(pNode.Data)^.CMDEX;
    Strcopy(Send_Buffer,pchar(CMDEX));
    Received_len:=CmdSend(@Send_Buffer,@Received_Buffer);//·&cent;&Euml;&Iacute;&sup2;&cent;&frac12;&Oacute;&frac12;á&sup1;&ucirc;
    If Received_len<0 Then
        Memo3.Lines.Add('&Iacute;¨&ETH;&Aring;&para;&Euml;&iquest;&Uacute;&acute;&brvbar;&Oacute;&Uacute;&para;&Iuml;&iquest;&ordf;×&acute;&Igrave;&not;&pound;&not;&Ccedil;&euml;&Aacute;&not;&frac12;&Oacute;&ordm;ó·&cent;&Euml;&Iacute;')
    Else
        Memo3.Lines.Add('Comm:='+Received_Buffer);
end;procedure Tmain_form.N10Click(Sender: TObject); //&Aring;&auml;&Ouml;&Atilde;&sup2;&Euml;&micro;&yen;&iexcl;&ordf;&iexcl;&ordf;&Iacute;&Euml;&sup3;&ouml;
begin
    CmdExit();
    hClientSocket.Active :=False;
    Close;
end;procedure Tmain_form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    Action:=caFree;
end;procedure Tmain_form.TreeView1Click(Sender: TObject); //&Ecirc;÷&ETH;&Iacute;&Ecirc;&yacute;&frac34;&Yacute;&Ntilde;&iexcl;&Ocirc;&ntilde;
var
    sn:string;
    pNode,node:ttreenode;
begin
    pNode:= TreeView1.Selected;//&Ecirc;÷&micro;±&Ccedil;°&Ntilde;&iexcl;&Ouml;&ETH;&frac12;á&micro;&atilde;
    sn:=PMyRec(pNode.Data)^.sn;//&micro;±&Ccedil;°&Ntilde;&iexcl;&Ouml;&ETH;&frac12;á&micro;&atilde;±à&ordm;&Aring;
    if  (pNode.HasChildren=false) and (length(trim(sn))=2)then begin
        With query1 do begin
            close;
            ParamByName('vLen').asinteger :=4;
            ParamByName('vsn').asstring:=sn+'%';
            open;
            First;
            while not Eof do begin
                new(MyRecPtr);
                MyRecPtr^.sn := fields[0].text;
                MyRecPtr^.CMDFMT := fields[2].value;
                MyRecPtr^.CMDEX := fields[3].value;
                node:=treeview1.items.Addchildobject(pNode,fields[1].Text,MyRecPtr);
                Node.ImageIndex :=3;
                Node.SelectedIndex:=3;
                next;
            End;
        end;
    End;
    If length(trim(sn))=4 Then
        ReFresh();
end;procedure Tmain_form.B1Click(Sender: TObject);  //&Aacute;&not;&frac12;&Oacute;°&acute;&Aring;&yen;
begin
hClientSocket:=CommInit(ServerIP,CommPortID);
    if  hClientSocket.socket.Connected  then begin
          b1.Enabled:=false;
          b2.Enabled:=true;
         //remind.showhint:=true;
        StatusBar1.Panels[2].Text :='&Iacute;¨&ETH;&Aring;:&Aacute;&not;&frac12;&Oacute;...';
    end Else
        Main_form.StatusBar1.Panels[2].Text :='&Iacute;¨&ETH;&Aring;:&para;&Iuml;&iquest;&ordf;';end;procedure Tmain_form.B2Click(Sender: TObject);    // &para;&Iuml;&iquest;&ordf;°&acute;&Aring;&yen;
begin
//    StatusBar1.simpletext:='&Ograve;&Ntilde;&frac34;&shy;&para;&Iuml;&iquest;&ordf;&Aacute;&Euml;&Oacute;&euml;·&thorn;&Icirc;&ntilde;&AElig;÷&micro;&Auml;&Aacute;&not;&frac12;&Oacute;';
    hClientSocket.Active :=False;
    b1.Enabled:=true;
    b2.Enabled:=false;
    StatusBar1.Panels[2].Text :='&Iacute;¨&ETH;&Aring;:&para;&Iuml;&iquest;&ordf;';end;procedure Tmain_form.B3Click(Sender: TObject);   // &Aring;&auml;&Ouml;&Atilde;°&acute;&Aring;&yen;
begin
//    StatusBar1.simpletext:='&Ccedil;&euml;&Auml;&atilde;&para;&Ocirc;&Ograve;&Ocirc;&Eacute;&Iuml;&para;&Ocirc;&raquo;°&iquest;ò&frac12;&oslash;&ETH;&ETH;&Eacute;è&Ouml;&micro;';
    Application.CreateForm(TCFG_Form,Cfg_Form);
    Cfg_Form.ShowModal;end;procedure Tmain_form.B4Click(Sender: TObject);   //&Iacute;&Euml;&sup3;&ouml;°&acute;&Aring;&yen;
begin
    CmdExit();
    hClientSocket.Active :=False;
    Close;end;
procedure Tmain_form.ToolButton2Click(Sender: TObject); //·&cent;&Euml;&Iacute;°&acute;&Aring;&yen;
Var
    //Sn,CMDEX:String;
    //pNode:TTreeNode;
    b:double; //b&Icirc;&ordf;&sup3;&Eacute;&sup1;&brvbar;±&Egrave;&Agrave;&yacute;
   s,j,k,i,x:integer;   //i:&ETH;&iexcl;&Ntilde;&shy;&raquo;·&pound;&not;j&acute;ó&Ntilde;&shy;&raquo;·&pound;&not;x&Icirc;&Auml;±&frac34;&ETH;&ETH;&pound;&not;k·&cent;&Euml;&Iacute;&acute;&Icirc;&Ecirc;&yacute;,s&sup3;&Eacute;&sup1;&brvbar;&Ecirc;&yacute;begin
     x:=2;
      k:=10;
      s:=0;
  for i:=0 to x do     for j := 1 to k do
    begin     if Not hClientSocket.socket.Connected then Begin
        Memo3.Lines.Add('&Iacute;¨&ETH;&Aring;&para;&Euml;&iquest;&Uacute;&acute;&brvbar;&Oacute;&Uacute;&para;&Iuml;&iquest;&ordf;×&acute;&Igrave;&not;&pound;&not;&Ccedil;&euml;&Aacute;&not;&frac12;&Oacute;&ordm;ó·&cent;&Euml;&Iacute;');
        Exit;
    End;
    //pNode:= TreeView1.Selected;//&Ecirc;÷&micro;±&Ccedil;°&Ntilde;&iexcl;&Ouml;&ETH;&frac12;á&micro;&atilde;
    //Sn:=PMyRec(pNode.Data)^.Sn;
   //If Length(Trim(Sn))<>4 Then Begin
    //    ShowMessage('Select Correct Command');
     //   Exit;
   // End;
    //Memo3.Clear;
    //CMDEX:=PMyRec(pNode.Data)^.CMDEX;
    //Strcopy(Send_Buffer,pchar(CMDEX));
    Strcopy(Send_Buffer,PChar(Memo2.Lines[i]));
    Received_len:=CmdSend(@Send_Buffer,@Received_Buffer);//·&cent;&Euml;&Iacute;&sup2;&cent;&frac12;&Oacute;&frac12;á&sup1;&ucirc;
    If Received_len<0 Then
        Memo3.Lines.Add('&Iacute;¨&ETH;&Aring;&para;&Euml;&iquest;&Uacute;&acute;&brvbar;&Oacute;&Uacute;&para;&Iuml;&iquest;&ordf;×&acute;&Igrave;&not;&pound;&not;&Ccedil;&euml;&Aacute;&not;&frac12;&Oacute;&ordm;ó·&cent;&Euml;&Iacute;')
    Else
        Memo3.Lines.Add('Comm:='+Received_Buffer);
        Memo1.Lines.Add(IntToStr(i+1)+'successful');
        s:=s+1;  end;
        b:=s/(k*(x+1));
  Memo1.Lines.Add('totle '+IntToStr(s)+' successful');
  Memo1.Lines.Add(FloatToStr(b*100)+'% successful');
end;procedure Tmain_form.ToolButton4Click(Sender: TObject);  //M2toM3°&acute;&Aring;&yen;&pound;¨&Ecirc;&Ocirc;&Ntilde;émemo3·&acute;&Oacute;&sup3;mem02&Ecirc;&yacute;&frac34;&Yacute;&pound;&copy;
  var
  j: Integer;
begin
  for j := 0 to Memo2.Lines.Count - 1 do
  begin
    Memo3.Lines.Add(Memo2.Lines[j]);
     Memo3.Lines.Add(':it is the '+IntToStr(2*j+2)+'