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;
. //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;
加断点时,我想没有谁会在注释行上加。如上面所说假如加在第一行注释语句,在调试时会自动将断点移到下面的第一条未注释语句即 tare.text := '20'; 上。既然是注释了的语句,就相当于是可以删除的语句,编译器对它根本就无视。
但是,我的机器上就出现了这种情况,假如给 tare.text := '20'; 加上断点,那么实际效果是加在了 tare.text := '20';之后的第三句上,也就是说断点出现了错位(错行)的情况,看起来是加在了第n行上,而实际上是在第n+3行。
在比如,如果要在语句 tare.text:='20'; 上进行断点调试,那么就得在它之前的第三行语句//Tare.ReadOnly := false; 上加断点(而正常情况下注释语句是加不上断点的,但我的机器现在就可以,并不是每个unit都出现这种情况,只是有几个unit是这样的)。
不知道为什么会出现这种错位的问题。
如果代码文本含有Delphi IDE不能识别的字符的话,编译就不可能通过了。
我的代码没有包含 Delphi IDE不能识别的字符。