Delphi IDE将TFrame视为Form

时间:2009-02-26 07:31:37

标签: delphi inheritance ide tframe

每当我调整我的TFrame类(添加属性,方法等)时,IDE会感到困惑,并且表现得好像它认为框架是一个表单,包括标题/标题,边框等。然而,显然这个类被宣布为TFrame后代。关于是什么原因,如何预防,以及如何解决的任何想法?

我正在使用Delphi 2007专业版。另请注意(如果重要),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文件保存为文本而不是二进制文件(如果这很重要的话)。

5 个答案:

答案 0 :(得分:8)

我遇到了同样的问题。以下步骤为我们解决了问题,它也可能对您有用:

    IDE中的
  1. :关闭所有使用框架的表单
  2. 打开框架,以文字形式查看(* .dfm)
  3. dfm可能以对象MyFrame:TMyFrameClass
  4. 开头
  5. 将此更改为继承的MyFrame:TMyFrameClass
  6. 我不知道是什么原因造成的。

答案 1 :(得分:1)

也许您已取消选中“嵌入式设计器”复选框? (工具|选项|环境选项| VCL设计器)。然后,确实,您的框架在设计时显示为一个表单(带有标题,边框等)。此外,您有问题的TFrame后代的具体代码或有关您的案例的更多详细信息将有所帮助。

答案 2 :(得分:0)

据我所知,编辑框架时,必须在编辑器中打开窗体和框架。否则可能存在更新问题。虽然我没见过这个。

但是很久以前我放弃了框架因为我没有发现它们非常可靠。

现在我只使用它们进行原型设计,创建一个自定义组件(从一个带有适当控件的面板派生)。

答案 3 :(得分:0)

You may have to register custom module to the IDE 但是除非他们在祖先类中,否则你的附加属性将无法正常工作。

答案 4 :(得分:0)

我遇到了很多与TFrame有关的问题,最后解决了我解决所有问题的方法:我可视化地创建和设计框架,但只能通过手工编码来使用它们。

作为副作用,我的应用程序变得更小,因为dfm-s更少。