如题:当我断点进入Timer事件时,所有语句均执行,否则有的语句不执行。  if ListNo = ListLen then  ListNo := 0;
   if FStateList.Strings[ListNo] = '0' then
      begin
        if FModBusTCP.ReadCoils(StrToInt(FHashList.Strings[ListNo]),4 ,8,ByteTemp) = 0 then
           FStateList.Strings[ListNo] := '1';
      end;
   if SameText(FStateList.Strings[ListNo] , '1') then
      begin
       if ReadFlag(FHashList.Strings[ListNo],1) then
          begin
            StateValue := ReadMBState(FHashList.Strings[ListNo],2);
            Len := ReadLength(FHashList.Strings[ListNo],3);
            Txt := ReadString(FHashList.Strings[ListNo],4,Len);
            ProcessData(FHashList.Strings[ListNo],Txt,StateValue);
          end;
       end;
   Inc(ListNo);

解决方案 »

  1.   

     如题:当我断点进入Timer事件时,所有语句均执行,否则有的语句不执行。没明白,事件代码有if 判断当然在条件不满足时,有些语句不执行。是对的啊。楼主问的是?
      

  2.   

    Timer事件的入口加入  myTimer.Enabled := fasle;
    Timer事件的出口加入  myTimer.Enabled := true;  myTimer.Enabled := false;
      if ListNo = ListLen then  ListNo := 0;
      if FStateList.Strings[ListNo] = '0' then
          begin
            if FModBusTCP.ReadCoils(StrToInt(FHashList.Strings[ListNo]),4 ,8,ByteTemp) = 0 then
              FStateList.Strings[ListNo] := '1';
          end;
      if SameText(FStateList.Strings[ListNo] , '1') then
          begin
          if ReadFlag(FHashList.Strings[ListNo],1) then
              begin
                StateValue := ReadMBState(FHashList.Strings[ListNo],2);
                Len := ReadLength(FHashList.Strings[ListNo],3);
                Txt := ReadString(FHashList.Strings[ListNo],4,Len);
                ProcessData(FHashList.Strings[ListNo],Txt,StateValue);
              end;
          end;
      Inc(ListNo);
      myTimer.Enabled := true;
      

  3.   

    TO : lynmison
      目前我的做法和您说的一样,但还是有这个问题。
      如果我在程序中加上
         Sleep(400);
        Application.ProcessMessages ;
      通常情况下便可以正常执行。  是不是因为某些语句的执行时间太长,而跳过下面的语句不执行了?
      按道理不会的,可又没有合理的解释!
      

  4.   

    你把Timer的间隔设大点,肯定就跟你断点执行一样都能执行了。
      

  5.   


    如果有多个timer事件,这样会不会程序运行起来很卡啊(停顿感)?