gpt4 book ai didi

创建类的新实例的 Delphi XE3 watch

转载 作者:行者123 更新时间:2023-12-03 19:42:04 25 4
gpt4 key购买 nike

我是 Delphi 的新手,我正在使用 Rad Studio XE3。

出于调试目的,我想在运行时查看 TDateTime 的值是多少变量,如果它被分配了一些值。例如,拥有 var date : TDateTime :

date := 0

所以,我在徘徊是否可以为此目的使用 watch 窗口。我试过类似 TDateTime.Create(0)TDateTime := 0 ,但两者都给出错误消息作为输出。

有没有办法用 watch 做我需要的事情?

提前致谢。

更新 1 0 As TDateTime也不行。

最佳答案

watch 只能观察现有的变量; AFAICT,您无法在运行时创建新变量以添加到监 window 口。

(另外,TDateTime 不是 Delphi 中的对象,正如其他人在对您的问题的评论中所指出的那样。它只是一个 double,它将日期编码为值的整数部分,时间编码为小数 (小数)部分,你不能创建 TDateTime 实例。)

您可以使用评估/修改窗口(当调试器通过 View->Debug Windows->Evaluate/Modify 或右键单击菜单 Run->Evaluate/Modify 或 Ctrl+F7 处于断点时可用)来评估像“DateToStr(0)”这样的表达式。监视变量的唯一方法是在代码中实际声明(并使用)该变量,然后对该变量设置监视;仅仅声明它是不够的,因为编译器会优化掉未使用的变量。此外,您正在评估的函数必须在代码本身的某个地方实际使用,否则它将不可用。 (链接器不包含在大多数情况下实际未调用的可执行文件中的函数。)

如果您只希望该变量在调试时可用,而不是在您的发布代码中,您可以用 {$IFDEF 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;

关于创建类的新实例的 Delphi XE3 watch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17492187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com