回 帖 发 新 帖 刷新版面

主题:同一段代码在定时器中可运行,但在命令按钮中只运行第一条记录

       SELECT rooms
       GO top

 DO while !EOF()
    IF rooms.timeon=.t.                         &&为F的不执行,跳过
       Thisform.txtoutput.Value=""            &&清空接收信息文本框的值

      lcRemoteHostIP="172.16.4."+ALLTRIM(STR(rooms.ip))
     **定义一个连接端口号,注意:要保证服务器也使用相同的端口号
     lcRemotePort=6000

    **首先关闭连接
     Thisform.WinSock1.OBJECT.Close

    **建立到服务器的连接
    Thisform.txtoutput.Value="正在连接.."+lcRemoteHostIP+"..,"
    Thisform.WInSock1.OBJECT.Connect(lcRemoteHostIP,lcRemotePort)

    lcStartSec=SECONDS()

    **等待连接到服务器
    DO WHILE SECONDS()-lcStartSec<lcTimeOut
          INKEY(0.02) && 等待时间间隔,该语句用于在进行循环时减少对CPU资源的占用
      IF  Thisform.WinSock1.OBJECT.State=7 
           **连接成功,接收数据,分组编码
            lcBuffer=SPACE(6) 
          **获得所接收到的数据
          Thisform.winsock1.object.GetData(@lcBuffer)
           REPLACE ROOMS.bm WITH  lcBuffer
          ThisForm.txtOutput.Value = Thisform.txtoutput.Value+lcBuffer+"单元已经连接 !"
      
             REPLACE ROOMS.conect WITH "OK"
      
            **计算控制码
            son =0H55AAAAAAAAAA110D0F000000000000000000000000D416
           BITSEND=CREATEBINARY(son)
             secho =""
           **进行数据发送
          Thisform.WinSock1.OBJECT.SendData(BITSEND)
      
          lcBuffer=SPACE(13) 
          INKEY(0.1) && 等待时间间隔0.1s
         Thisform.winsock1.object.GetData(@lcBuffer)
          secho =CREATEBINARY(lcBuffer)
             IF  secho =""
                 Thisform.txtoutput.Value=Thisform.txtoutput.Value+"控制信息返回超时.."
             ELSE
               Thisform.txtoutput.Value= Thisform.txtoutput.Value+"控制信息发送成功!"
             ENDIF
             EXIT 
       ELSE
         LOOP
       ENDIF
        ENDDO 
        
    ELSE
    endif  
     SKIP
  LOOP
  enddo   
              Thisform.Winsock1.OBJECT.Close
thisform.timer1.Enabled =.t. 

 

嵌套多了点,但在Timer1中能执行全部记录,命令按钮中只执行第一条,不知何故

回复列表 (共1个回复)

沙发

很不错呢------------------------------- [url=http://www.sacchanelpascher2013.com]sac chanel[/url] ,[url=http://www.chaussuresgucci2013.com]chaussures gucci[/url] , [url=http://www.chaussureslacostehomme.com]chaussures lacoste[/url] , [url=http://www.chaussuresprada2013.com]chaussures prada[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册