【发布时间】:2010-10-10 00:36:15
【问题描述】:
每隔一段时间,当我调整我的 TFrame 类(添加属性、方法等)时,IDE 就会感到困惑,并表现得好像它认为框架是一个表单,包含标题/标题、边框等。然而,显然该类被声明为 TFrame 后代。关于导致这种情况的原因,如何预防以及如何解决的任何想法?
我使用的是 Delphi 2007 Pro。另请注意(如果重要的话),TFrame 后代通常通过设计时包在 IDE 中注册(即在调色板上)。
稍后:其他“细节”:我目前遇到此问题的框架在视觉上是一个非常基本的 TFrame(与全新 TFrame 相比的唯一变化是尺寸和背景颜色)。
这是它的类声明:
TBasePanel = class(TFrame)
private
FPanelManager: TPanelManager;
procedure SetPanelManager(const Value: TPanelManager);
protected
procedure Connect; virtual; abstract;
procedure Disconnect; virtual; abstract;
procedure Refresh; virtual;
procedure Requery; virtual; abstract;
published
property PanelManager: TPanelManager read FPanelManager write
SetPanelManager;
这个框架被用作许多其他框架的基类。我通常直接从它所属的 BPL 项目编辑它(因为所有这些框架都安装到调色板),而不是作为 EXE 项目的一部分,打开相关的表单等。
此外,在工具 -> 选项中选中了“嵌入式设计器”。
我也将所有 DFM 文件保存为文本而不是二进制文件(如果这很重要的话)。
【问题讨论】:
-
只是对此的更新:答案似乎是下面的 birger 答案的组合加上创建一个“基本框架类”,它与普通 TFrame 没有任何变化,然后在添加任何之前从它继承属性、方法等。似乎以某种方式稳定了继承流。
标签: delphi inheritance ide tframe