我是Delphi的新手,我正在使用Rad Studio XE3。
出于调试目的,我想在运行时看到如果为TDateTime
变量分配了一些值,它将具有什么值。例如,拥有var date : TDateTime
:
date := 0
所以,如果有可能为此目的使用手表窗口,我就会徘徊。我尝试了类似TDateTime.Create(0)
或TDateTime := 0
的内容,但都将错误消息作为输出。
有没有办法用手表做我需要的东西?
提前致谢。
更新1 0 As TDateTime
也不起作用。
答案 0 :(得分:3)
手表仅适用于观看现有变量; AFAICT,您无法在运行时创建要添加到监视窗口的新变量。
(另外,TDateTime
不是Delphi中的对象,正如其他人在你的问题的评论中所指出的那样。它只是一个double
,它在值的整数部分对日期进行编码,以及小数(十进制)部分中的时间,oo您无法创建TDateTime
实例。)
您可以使用评估/修改窗口(当调试器通过View->Debug Windows->Evaluate/Modify
或右键菜单Run->Evaluate/Modify
或 Ctrl + F7 处于断点时可用)评估像'DateToStr(0)'这样的表达式。观察变量的唯一方法是在代码中实际声明(和使用)变量,然后在该变量上设置监视;简单地声明它是不够的,因为编译器将优化掉未使用的变量。此外,您正在评估的功能必须实际用于代码本身的某个位置,否则将无法使用。 (链接器不包括可执行文件中在大多数情况下实际上未调用的函数。)
如果您只想在调试时使用变量,而不是在发布代码中,则可以使用{$IFDEF DEBUG}
(自动在Debug构建配置中预定义)将其包围。
procedure TForm1.FormCreate(Sender: TObject);
{$IFDEF DEBUG}
var
CurrDate: TDateTime;
{$ENDIF}
begin
{$IFDEF DEBUG}
CurrDate := Date;
// Use CurrDate so the compiler doesn't eliminate it.
{$ENDIF}
// Your other code here as usual
end;