Переменная Delphi TDateTime не будет инициализироваться в Delphi 2010 - PullRequest
2 голосов
/ 21 ноября 2011

Я создал простую форму в 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, я вижу значение.

1 Ответ

6 голосов
/ 21 ноября 2011

Я думаю, что причина, по которой вы не видите myDateTime, заключается в том, что он никогда не используется.
Таким образом, он является кандидатом на удаление мертвого кода.
Очевидно, что удаленный код не может быть выполнен, и вы не можете видеть значение.

Если вы отключите оптимизацию, ваш (бесполезный) код не будет удален, и вы увидите заполнение переменной.

...