【发布时间】:2010-10-09 22:25:01
【问题描述】:
我正在开发一个 IDE 注册组件包,其中大部分是从 TFrame 基类派生的。包中还包含由这些组件调用的各种自定义对话框表单。我在 Delphi 2007 工作。
我注意到有时通常具有关联 DFM 文件的框架和表单单元并不总是在它们下方显示 DFM 文件(可通过小 [+] 树视图节点扩展器访问)。如果我添加一个现有的基于表单的 PAS 文件,例如,通过右键单击 BPL 项目(在项目管理器中)-> 添加,它不会在列表中显示 DFM 文件。
但是,如果我添加新的并在项目中创建一个新的表单或框架单元,它会在项目管理器中显示为典型的嵌套两个文件项。如果我将现有表单从项目组中的另一个项目拖到该 BPL 项目中,它也会显示这种方式。
看起来这应该是一致的,我更喜欢两个文件显示单位是框架或表单。
这是否表明项目文件中有问题?我是否错误地将现有表单/框架添加到此包中?如果是这样,我应该如何添加现有的表单/框架单元,以便两个文件都显示在项目管理器列表中?
* 更新 *
以下来自 Alen 的建议:
我尝试将 {$R *.dfm} 指令添加到表单的单元中,并且在将 DFM 文件添加到我的 BPL 包/项目时它不会强制显示它。将 {$R *.dfm} 添加到项目文件本身(我认为这不是您的意思,但我想我会尝试)也不起作用。这种技术是否只适用于 EXE 项目?
可能(可能)相关,尝试在某些地方使用该指令进行构建给了我这个:
[DCC 错误] E2161 警告:重复资源:类型 10 (RCDATA),ID TTESTTREEVIEW;文件 E:\Projects\MyApp\Components\TTestTreeViewFrame.dfm 资源保留;文件 E:\Projects\MyApp\Components\TTestTreeViewFrame.dfm 资源被丢弃。
“保留”和“丢弃”同一个文件??
稍后:看起来这个“重复资源”问题可能与 this。不确定,但至少在一种情况下,两者同时发生。
【问题讨论】:
-
我自己在 Turbo Delphi 2006 上尝试过 Allen Bauers / Vegars 的建议,它确实有效。您必须在包含部分的行之后添加 {Form#}。关闭 bpl 并再次重新打开后,.dfm 会显示在包管理器中。
标签: delphi ide packages custom-component