我有一个正在使用的VCL Delphi应用程序,但是Delphi似乎拒绝执行我的某些代码行,DrawLine是一个私有函数...
if not(FirstCoords) then
begin
firstcoords := true;
xCo1 := xCoPre + LeftOffset;
yCo1 := yCoPre + TopOffset;
end
else
begin
xCo2 := xCoPre + LeftOffset;
yCo2 := yCoPre + TopOffset;
DrawLine(xCo1, xCo2, yCo1, yCo2);
bbtFieldScale.Click;
end;
当我逐步调试时,它将执行If,然后继续将“ firstcoords”设置为true,但是然后直接跳至If的末尾,甚至不触摸其他两行...如果我添加诸如下面的代码,然后似乎执行了代码...
if not(FirstCoords) then
begin
firstcoords := true;
xCo1 := xCoPre + LeftOffset;
yCo1 := yCoPre + TopOffset;
showmessage(inttostr(xCo1+yCo1));
end
else
begin
xCo2 := xCoPre + LeftOffset;
yCo2 := yCoPre + TopOffset;
DrawLine(xCo1, xCo2, yCo1, yCo2);
bbtFieldScale.Click;
end;
[请帮助,我会很感激:)
我已禁用优化,但它似乎仍然拒绝...
被优化的]操作中发生,因为分配给变量的变量未在代码中的其他任何地方使用,并且编译器看不到消除这些操作的明显副作用。一旦添加ShowMessage()
,相关的变量就变得相关,因此无法再消除它们的分配。