对Delphi XE的任何想法都可以随意加载设计包吗?

Ale*_*lex 6 delphi delphi-xe

我已经创建了一个包含组件注册的设计包(组件本身在运行时)和一些IDE菜单项.

如果我从项目经理单击上下文菜单中的"安装"菜单项 - 包将被加载并正常工作(始终).

如果我关闭IDE并重新启动它 - 可能已加载包或可能未加载包.随机看似.但它通常不会加载,而不是加载.

如果我去组件/安装包 - 我在列表中看到我的包,复选框被选中,"组件"按钮显示我的包中的组件,但包的可执行文件本身甚至没有在IDE中加载!(我已通过Process Explorer验证了这一点).重新安装(删除包 - >确定 - >组件/安装包 - >添加 - >确定)没有帮助.但是从项目管理器中的项目的上下文菜单中卸载/安装 - 总是有帮助的.

我已经将OutputDebugString添加到包中每个模块的初始化部分.我发现初始化部分不会运行.

运行时包与设计时包在同一文件夹中.文件夹位于PATH环境变量中.我还尝试将包放在Delphi的Bin文件夹中.没有错误消息.没有奇怪/诊断的OutputDebugStrings.

有任何想法吗?

PS我在两台不同的机器上有这种行为.一个是Win7,另一个是WinXP SP 2.

PPS我无法在Delphi 7上重现这种行为.相同的包,重新编译D7总是加载.

Ale*_*lex 9

我发现新的Delphi具有延迟打包加载的功能.这应该优化启动速度,当不加载包时,不需要它们时.

这适用于组件包,但破坏了(例如)修改IDE菜单的包的乐趣.

您可以通过从Register过程调用ForceDemandLoadState(dlDisable)来告诉IDE始终加载您的包.

PS为什么你在发帖后几乎立即找到答案?:d

  • 因为在质疑时你必须重新考虑问题,以便将其传达给其他人 - 最后,你会看到另一个角度的问题.有时候这就足够了. (2认同)