每当我调整我的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文件保存为文本而不是二进制文件(如果这很重要的话)。
答案 0 :(得分:8)
我遇到了同样的问题。以下步骤为我们解决了问题,它也可能对您有用:
我不知道是什么原因造成的。
答案 1 :(得分:1)
也许您已取消选中“嵌入式设计器”复选框? (工具|选项|环境选项| VCL设计器)。然后,确实,您的框架在设计时显示为一个表单(带有标题,边框等)。此外,您有问题的TFrame后代的具体代码或有关您的案例的更多详细信息将有所帮助。
答案 2 :(得分:0)
据我所知,编辑框架时,必须在编辑器中打开窗体和框架。否则可能存在更新问题。虽然我没见过这个。
但是很久以前我放弃了框架因为我没有发现它们非常可靠。
现在我只使用它们进行原型设计,创建一个自定义组件(从一个带有适当控件的面板派生)。
答案 3 :(得分:0)
You may have to register custom module to the IDE 但是除非他们在祖先类中,否则你的附加属性将无法正常工作。
答案 4 :(得分:0)
我遇到了很多与TFrame有关的问题,最后解决了我解决所有问题的方法:我可视化地创建和设计框架,但只能通过手工编码来使用它们。
作为副作用,我的应用程序变得更小,因为dfm-s更少。