Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是';()';在Delphi调试器中是什么意思?_Delphi_Debugging_Delphi Xe5 - Fatal编程技术网

什么是';()';在Delphi调试器中是什么意思?

什么是';()';在Delphi调试器中是什么意思?,delphi,debugging,delphi-xe5,Delphi,Debugging,Delphi Xe5,每当我在Delphi调试器中检查或观察表达式时,值“()”总是出现 这是什么意思?如果它代表某种类型的对象,我怎样才能可视化该对象的状态呢?它可能意味着两种不同的东西,这取决于您是在查看数组还是对象 对于数组,这意味着您有一个包含0个元素的数组(通常是动态数组) 对于一个物体来说,它有点复杂。这意味着您正在检查一个声明为不包含任何数据成员的类型的对象。如果您正在查看代码中声明为TObject的变量(例如事件处理程序中的Sender:TObject),则实际类型几乎肯定不是TObject,但调试器

每当我在Delphi调试器中检查或观察表达式时,值“()”总是出现


这是什么意思?如果它代表某种类型的对象,我怎样才能可视化该对象的状态呢?

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

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

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

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

  • 向上拉“评估/修改”(Ctrl-F7)
  • 计算对象的真实类型。(
    Sender.classtype
  • 计算对象,强制转换为其真实类型。(
    TMyObject(发送方)
    )。这将告诉您对象实际包含的内容

任何细节的机会。给我们举一个这样一个表达式的例子。进入inspect通常会有所帮助。如果类型信息不确定,您可能需要首先对其进行类型转换。遗憾的是,调试器不够聪明,无法自动提取对象的类类型并将其作为实际类型进行检查。