我在主程序中高了两个断点。()
  程序如下:
     application.CreateForm(tfrpsize,frpsize);//设断点处
          //主程序调用子程序。 大概有几十个窗体。
     frpsize.Showmodal;//设断点处  我按Ctrl+F9 程序编译成功. 但是当我按F9后 刚才设断点处的两个断点变成 打"叉"的断点。
  程序运行后不会在断点处停下。 断点失效了。
  
  先关闭delphi ,再打开delphi
  但是我在新建一个工程序文件. 在窗体上放一个 button 并在onclick 里写代码。
  在设几个断点。 这次这个断点可以。  为什么先前的那个断点不行? 如何调试程序?

解决方案 »

  1.   

    csdn 的高手到哪去了。难道都出差了。
      怎么没有人回答我???
      

  2.   

    "叉" 说明编译器没有执行这条语句.比如你写了个函数:function myfunc:boolean; //声明
    ....function Tform1.myfunc: boolean; //实现
    begin
      ........
      result:=true;
    end;但你没有在某个地方调用这个函数,那么编译器不会执行到这个函数.如果你在一个事件里,假如:
    procedure Tform1.click(sender: Tobject);
    begin
      if self.myfunc then
      ......end;那么就执行到了.
      

  3.   

    我认同blueshu(绝对是菜鸟)的说法,DELPHI认为不会执行代码设断点会打X。
      

  4.   

    to 所有人:
       1): 以下两行代码是在 按钮的 onclick 事件里写的。只有这两句.
           application.CreateForm(tfrpsize,frpsize);//设断点处
              //主程序调用子程序。 大概有几十个窗体。tfrpsize是窗体类继承自Tform
             //frpsize 是Tfrpsize的对象;
           frpsize.Showmodal;//设断点处
       2): 奇怪的是我新建一个工程. 工程里有两个窗体如:form1和frpsize
           然后在form1的一个按钮的onclick里写上:
             application.CreateForm(tfrpsize,frpsize);//设断点
             frpsize.Showmodal;//设断点
            这时以上这两句可以设断点。 运行时可以在断点处停住.
      

  5.   

    问题 解决了,  新建一个工程 然后把每个单元重新uses 进来就可以了
    多谢各位关心.