'()'在Delphi调试器中意味着什么?

时间:2013-09-30 13:21:38

标签: delphi debugging delphi-xe5

每当我在Delphi调试器中检查或观察表达式时,值'()'就会不断出现。

这是什么意思?如果它代表某种对象,我如何可视化该对象的状态?

1 个答案:

答案 0 :(得分:4)

它可能意味着两种不同的东西,这取决于你是在看数组还是对象。

对于数组,这意味着您有一个包含0个元素的数组(通常是动态数组)。

对于一个对象,它有点复杂。这意味着您正在检查声明为的对象,该对象不包含任何数据成员。如果您正在查看代码中声明为TObject的变量(例如事件处理程序中的Sender: TObject),则实际类型几乎肯定不是TObject,而是调试器将它评估为它声明的类型。

要获取有关该对象的实际数据,请执行以下操作:

  • 拉起评估/修改(Ctrl-F7)。
  • 评估对象的实际类型。 (Sender.classtype
  • 评估对象,强制转换为真实类型。 (TMyObject(Sender))。这将告诉您对象实际包含的内容。