![]() |
1
4
不完全是您要查找的内容,但可以使用rtti访问各种已发布属性的值。神奇的程序在typinfo单元中。您可能最感兴趣的是getPropList,它将返回对象属性列表,以及getPropValue,它将允许您获取属性的值。
例如,使用dumpobject(self)在主窗体的按钮单击上运行它,它将当前窗体的所有属性转储到备忘录中。这只是已发布的属性,要求主类要么从tppersistent继承,要么在对象之前打开$m+进行编译。 有传言说,类似“反射镜”的能力将在未来的德尔福版本(可能2010年)。 |
![]() |
2
3
考虑一下 Codesite 这是一个更完整的跟踪解决方案。它允许您输出更复杂的信息,然后搜索、打印和分析数据。但是为了您的目的,您可以使用codesite.send(“before”,self)简单地向它发送一个对象;并且您可以在日志中获得所有RTTI可用的属性。也要做一个“after”,然后您可以通过同时选择这两个来比较代码站点输出中的两个。它救了我很多次。 |
![]() |
3
-2
如果Delphi7是.NET版本,那么您可以通过反射来实现(其中的一部分)。(不容易,但不难)。如果这是正常的、已编译的东西,那么这是一个难题,除开专门的打印函数/方法外,调试器是您最好的选择。 |