Delphi :TFrame错误没有可插入的帧

umuewwlo  于 2022-11-23  发布在  其他
关注(0)|答案(4)|浏览(148)

在我身上发生了这样的事情, Delphi XE 6 IDE * 忘记了 * 我过去创建的所有TFrame后代。
更具体地说,当我点击标准-〉框架,对话框选择我的框架不再显示。
而是显示以下错误消息:
没有可插入的框架。可以从文件创建新框架|新增|其他选择..
有没有补救的办法?

EDIT 1很遗憾,无法提供重现步骤:老实说,我不知道这是怎么发生的,但它确实发生了。我认为可能是从 Delphi 的某些版本升级到另一个版本时的罪魁祸首。随着时间的推移,我多次进行这种升级,我记得在Delphi 7中开始了这个项目,然后有一些版本,我不记得是哪一个,我使用的最后两个版本是XE 2,直到现在是XE 6。
Edit 2如果框架是用XE 2之前的 Delphi 版本创建的,则会发生这种情况。

sxpgvts3

sxpgvts31#

问题的原因在于添加Firemonkey框架时对.dproj文件的更改。为了区分为vcl制作的帧和为fmx制作的帧,在.dproj文件中添加了一行,如下所示。要对.dproj文件进行更正,请执行以下操作:
1.关闭 Delphi IDE。
1.使用您选择的文本编辑器打开.dproj文件。
1.逐一查找TFrame
1.让我们假设下面是您的TFrame节:

<DCCReference Include="Results.pas">
    <Form>FrameResults</Form>
    <DesignClass>TFrame</DesignClass>
</DCCReference>

1.修复方法是将以下行添加到该部分:

<FormType>dfm</FormType>

(in fmx项目行为<FormType>fmx</FormType>

xghobddn

xghobddn2#

我有这种事情发生;对我来说要简单得多。
我有一个fmx项目有一些帧和一个vcl项目,没有在一个单一的项目组(不同的子目录)。
如果我打开了一个fmx单元,并试图从组件菜单添加一个帧,但有vcl项目作为编译目标,然后我得到了这个消息。改变编译目标到应用程序,其中包含我打开的单元和帧的集合停止了错误。

yeotifhr

yeotifhr3#

IDE中似乎存在bug,具体来说,IDE提供了IOTASourceEditor接口,该接口有CreateWriter方法来获取IOTAEditWriter接口。
一些IDE扩展可能会使用IOTAEditWriter接口的方法来(例如)编辑.dpr文件的内容(基本上,只要一系列的.DeleteTo.Insert就足够了)。显然,这是以某种方式迫使IDE损坏.dproj文件。

brqmpdu1

brqmpdu14#

我也有同样的问题框架内容没有正确更新,在更新和删除框架几次后,它坏了。在项目视图下,我删除了所有的框架(右键单击从项目中删除),并再次添加它们(右键单击项目-〉添加)

相关问题