我在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时,可以看到该值。

最佳答案

我认为您没有看到myDateTime的原因是它从未使用过。
因此,它是删除死代码的候选者。
显然,已删除的代码无法执行,您也看不到该值。

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

07-25 21:18