我写了一个类。里面用了tlist等控见
但是为什么我访问里面的一些方法时会出现一些奇怪的问题::
如::
  while Fcritical do  /////////1111 到这里时就不执行了
  begin
    Application.ProcessMessages;
    Sleep(1);
  end;
  Fcritical := true;
这样的代码回出错,
请问各位大虾一般事什么原因啊

解决方案 »

  1.   

    while Fcritical do  这句话没写明白。
      

  2.   

    while Fcritical do  /////////1111 到这里时就不执行了
      begin
        Application.ProcessMessages;
        Sleep(1);
      end;
      Fcritical := true;
    已开始你的fcritical是false,她当然永远在这里循环了阿,你在里面是不是改一个出口出来啊,否则这样的程序很可能死机的
      

  3.   

    不对,我说错了
    不会死循环,但是你这段代码有什么用呢?不明白,你是为了程序到这里把控制权交换用户界面,但是不用这个while来控制啊,如果你这个时候是true,而用户不干预,那可能就真的死在这里了。
    开始的时候应该是true,然后你在跟踪程序,可能没有响应客户干预,所以在这里循环,你可以运行一下,然后在这里把断点去掉,到界面进行人工干预,看看?
      

  4.   

    Fcritical 有没有初始化?
    利用断点、单步执行一下。
      

  5.   

    while Fcritical do  
      begin
        Application.ProcessMessages;
        Sleep(1);
      end;
      Fcritical := true;这是不是死循环呀?
      

  6.   

    while Fcritical do  
      begin
        Application.ProcessMessages;
        Sleep(1);
      end;
      Fcritical := true;这是不是死循环呀?
      

  7.   

    如果Fcritical一开始是TRUE,这个程序就是死循环,
    如果Fcritical一开始是FALSE,那么这个条件不成立,所以永远不会执行。