继承的框架 - 缺少属性

Inherited frames - missing properties

我有一个包含许多不同框架的项目。其中一些框架是相互继承的。这是基本设置:

...等等。

一切都运行良好。我一整天都能够使用此设置编译和 运行 我的项目。然而,在某些时候,它开始完全失败并崩溃。

在应用程序启动时,主屏幕显示后不久,我收到此错误:

奇怪的是,我的应用程序中甚至没有创建或使用任何这些框架 - 这些框架位于仅在登录后明确创建的表单上(我确认它不是自动创建的)。

一旦我按下确定,我的应用程序终止,然后显示此错误:

经过一番挖掘,我在 IDE 中发现了一些非常奇怪的东西。我关闭 Delphi 并重新打开它,但我仍然看到这种差异。

在基本框架 (TBaseFrame) 上,它不显示任何 ClientWidthClientHeight 属性:

但是继承的框架 (TFrame1) 会:

似乎继承的框架被视为一种形式,尤其是看到 Caption 属性 那里不应该属于。

为什么会发生这种情况,我该如何解决?

编辑

要补充一点,当我进入我的项目选项时,它让我可以添加许多 来自动创建,这应该是不可能的。事实上,其中一个框架(最近创建的框架)已经设置为自动创建。但它是一个框架,而不是一个形式。

编辑 2

在从项目的自动创建中找到并删除第 1 个框架,以及删除另一个具有 class 名称冲突的(不相关)框架并将其重新添加到项目中之后,现在我至少能够编译项目并 运行 它。然而仍然有许多框架看起来好像它们是表格。

您遇到了一些 Delphi 版本的 IDE 设计器的问题,它忘记了继承的框架是一个框架。

要解决此问题,请打开项目源并在受影响框架的组件名称后添加一个“:TFrame”。保存、关闭并重新打开项目。

这是一个示例:

 MyFrame1 in 'MyFrame1.pas' {Frame1: TFrame};