我在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被填充。