2

我在 Delphi 2010 中创建了一个简单的表单,在我放置的按钮的代码中只有一个按钮:

procedure TForm1.Button1Click(Sender: TObject);
var
     myDateTime:TDateTime;
begin
     myDateTime:=now; // shows as 12/30/99 in debugger
end;

当我在 Delphi XE2 中运行完全相同的代码时,我会在 myDateTime 的值中获得当前日期/时间。

我想我必须在 Delphi 2010 项目环境中设置错误,但想不出它可能是什么。

任何帮助将非常感激。

谢谢!

发现的问题,编译器设置将代码生成优化设置为 true,并且该值显然被表示为 TDateTime 的默认值。当我将优化设置更改为 false 时,我可以看到该值。

4

1 回答 1

6

我认为你没有看到的原因myDateTime是它永远不会被使用。
因此,它是删除死代码的候选对象。
显然删除的代码无法执行,您也看不到该值。

如果您禁用优化,您的(无用的)代码不会被删除,并且您可以看到 var 被填充。

于 2011-11-21T15:04:20.053 回答