2

Delphi 2010 で、配置したボタンのコードに 1 つのボタンを含む単純なフォームを作成しました。

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 に答える