delphi中出现断点错位是什么原因呢。将断点加在第n行上,调试时,实际是在第n+3行起作用,就在注释行上都可以加断点,但实际上是在注释行后的第三行起作用。如下图所示(通过build后语句前的蓝色小点可以看出).  //Tare.ReadOnly := false;
.  //Suttle.Enabled := True;
.  //Suttle.ReadOnly := false;

.  tare.text:='20';
   suttle.Text:=floattostr(strtofloat(gross.text)-strtofloat(tare.text));
   frmMain.weight := strtofloat(suttle.text);
   frmMain.LEDFontNum1.Text := suttle.Text;
 end;

解决方案 »

  1.   

    不太明白你所说的意思
    加断点时,我想没有谁会在注释行上加。如上面所说假如加在第一行注释语句,在调试时会自动将断点移到下面的第一条未注释语句即 tare.text := '20'; 上。既然是注释了的语句,就相当于是可以删除的语句,编译器对它根本就无视。
      

  2.   

    1楼说的很正确。
    但是,我的机器上就出现了这种情况,假如给 tare.text := '20'; 加上断点,那么实际效果是加在了 tare.text := '20';之后的第三句上,也就是说断点出现了错位(错行)的情况,看起来是加在了第n行上,而实际上是在第n+3行。
    在比如,如果要在语句 tare.text:='20'; 上进行断点调试,那么就得在它之前的第三行语句//Tare.ReadOnly   :=   false; 上加断点(而正常情况下注释语句是加不上断点的,但我的机器现在就可以,并不是每个unit都出现这种情况,只是有几个unit是这样的)。
    不知道为什么会出现这种错位的问题。
      

  3.   

    代码文本含有Delphi IDE不能识别的字符所导致的
      

  4.   

    回复4楼
    如果代码文本含有Delphi IDE不能识别的字符的话,编译就不可能通过了。
    我的代码没有包含 Delphi IDE不能识别的字符。