读书人

delphi不编译某些行不执行某些语句

发布时间: 2013-06-26 14:29:32 作者: rapoo

求助:delphi不编译某些行,不执行某些语句
各位高手,本人碰到了一个非常奇怪的问题,跪求帮助。


var
a1:Double;
begin
......
a1:= f_dm.ADOPublic.fieldbyname('cbje').AsFloat;
......
end;

在这里,执行完A1的赋值后,跟踪变量值,发现无论 f_dm.ADOPublic.fieldbyname('cbje').AsFloat 等于多少,a1永远是0。

之后将赋值改为 a1:=200; 运行后发现a1依然是0。
==============================================================
奇怪的是我加一个变量,如下

var
a1,a2:Double;
begin
......
a2:= f_dm.ADOPublic.fieldbyname('cbje').AsFloat;
a1:=a2;
......
end;

先用A2获取值,然后赋值给a1,这样就可以正确执行了。百思不得其解。
=============================================================

刚才,我又把代码改为如下:

var
a1:Double;
begin
a1:=0;
a1:= f_dm.ADOPublic.fieldbyname('cbje').AsFloat;
end;

然后进行编译,奇怪的事又发生了,第一句 a1:=0; 根本就没有编译!!前面没有蓝色的小圆点。

也曾经想过是否名称有冲突,换过绝对不会重复的变量名,依然是如此。
这个破问题折腾了快2天了,实在不知道哪里的问题??




[解决办法]
勾掉Project->Options->Complier->Optimization的钩试下。
[解决办法]
有可能是有非法的换行符!
俺原先也遇到过这个问题!
从QQ上复制一段代码来执行出现的那种情况!
复制到记事本里看看!
小黑框去掉就可以了!
[解决办法]
我也有遇到过这种情况,百思不得其解啊。但是我把后面语句删除,再编译,之后再加上就可以了
[解决办法]
var
a1:Double;
begin
a1:=0;
a1:= f_dm.ADOPublic.fieldbyname('cbje').AsFloat;
end;

a1:=0;这句是废代码,被优化掉了.在编译选项里去掉优化选项即可.
并且这几行代码里你整个a1都是没用的变量,也会被优化掉.

读书人网 >.NET

热点推荐