【发布时间】:2010-07-16 03:04:20
【问题描述】:
我使用的是 Delphi 7。当我尝试在 FormCreate 中创建一个对象时,它失败了(实际上它只是挂起)。当我尝试在 FormShow 中做同样的事情时,它可以工作。请注意,我不是在谈论创建像 TEdit 这样的可视化组件。它是一个数据库抽象对象。任何想法为什么会发生这种情况?有没有关于这个主题的指南?
【问题讨论】:
-
更多细节会有所帮助。它是一个什么样的对象?它是我们熟悉的标准吗?它在其构造函数中尝试做什么?它在什么时候挂起?到目前为止,调试器告诉了你什么关于这个问题的信息?
-
请注意,调试语句(例如输出到 GExperts Debuger 或 SmartInspect 等控制台)可以帮助查明它挂在哪一行。那么答案通常是显而易见的。
-
@Mason Wheeler:这是我们内部构建的自定义数据抽象对象。不,我不希望有人熟悉它。它查询数据库并使用查询结果中的值填充其属性。它在尝试从构造函数内部打开 CDS 时挂起。没关系调试器,我想知道为什么它可以从 FormShow 而不是 FormCreate 工作(您可以假设底层数据模块、查询和关联的客户端数据集已经存在 - 否则我会遇到访问冲突)。
-
@Chris Thornton:我不想诊断问题本身。我想了解 FormCreate 和 FormShow 事件之间的细微差别(除了时间)。它在 FormShow 中起作用但在 FormCreate 中不起作用肯定是有原因的(因为它不依赖于 FormCreate 中的任何前面的代码)。