问题标签 [bpl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - Delphi,通过命令行在 bpg 中编译和安装组件
我有一个 bpg,在这个 bpg 中有一个 8 个 dpk/bpl 的列表,我需要通过命令行构建所有这些 dpk,并安装这些 dpk。我怎样才能通过命令行做到这一点?
思路是做一个类似jedi组件的安装器,一直在分析但是没看懂操作。
delphi - Delphi XE4:关闭内部包表单导致应用程序终止
我的应用程序中有一个 test.bpl 包,它有一个名为 myPackageForm 的表单。在我想关闭 myPackageForm 时加载我的包后,应用程序将终止。
主要项目初始化:
主窗体窗体创建:
MainForm 按钮单击:
P_ItemClick(Sender);
testPackage 命令单元:
myPackagForm 有一个类过程来显示它:
并且在 OnClose 程序中有:
作为解决方案,我尝试了另一个命令:
到 myPackagForm 创建;
任何人都可以知道在Delphi XE4中使用包上的 CreateForm 命令发生了什么吗?
delphi - Delphi 2010 - 模块化应用程序,如何在主机应用程序中获取类属性?
我做了一些关于模块化应用程序机制的测试。
我尝试的基本方法是在运行时加载包并在其中使用类。
我的测试是在我的包中构建表单并从我的主机应用程序加载表单“TCustOrder”,测试非常成功。
问题是 :
我的 TCustOrder 具有名为“Client:TObject”的属性,我如何从主机应用程序访问此属性。
编码 :
delphi - 缺少 .bpl 文件
编译 FireMonkey 项目并在另一台 PC 上执行应用程序后,我遇到了一个错误 - “rtl190.bpl is missing”。
所以我搜索了谷歌,我发现了对我不起作用的“解决方案”。
它说我应该取消选中“与动态 RTL 链接”和“与 Delphi 运行时链接......”。
确实在编译后,可执行文件更大,但我仍然遇到完全相同的错误。
我必须手动将“rtl190.bpl”和“fmx190.bpl”复制到 exe 的目录中才能使其工作。
我该如何解决这个问题?
delphi - 将应用程序转换为 BPL,现在应用程序在 Application.Initialize 之前死亡
我有一个 VCL Forms 应用程序,其中包含对我创建的 BPL 文件的引用。我将 BPL 中框架组件的单元名称添加到 VCL 应用程序主窗口的 uses 子句中。该应用程序构建良好,但是当我运行它时,它在到达项目文件中的第一行“Application.Initialize”之前就死了。如果我从 uses 子句中注释掉框架的单位,应用程序就会启动并运行良好。
什么可能导致应用程序启动时出现致命错误?
我猜在启动时加载 BPL 文件有问题,但我找不到问题。谢谢你。
更多信息如下... VCL 应用程序位于 XE5 中,我正在尝试将其转换为 BPL。整个应用程序驻留在一个 TFrame 控件中,其中包含许多其他按钮和框架,可以访问应用程序的所有底层功能。然后这个“主框架”被放置在应用程序的主窗体中,除了几个菜单项外,它是空的。原始应用程序构建并运行良好。
我创建了一个新的 BPL 项目,并添加了这个“主框架”组件,以创建一个 BPL 包,它本质上是我的整个应用程序,可以像以前一样用于普通的独立 exe 应用程序,或者添加到一个 RemObjects Hydra 插件模块,并最终嵌入到 C# 应用程序中。具有单个“主框架”组件的 BPL 项目构建良好,没有错误。
然后我用一个空的主窗体创建了一个新的 VCL Forms 应用程序,并将项目的“选项->包->运行时包”设置为包含我的新 BPL,并选中“与运行时包的链接”选项。我在主窗体的uses 子句中添加了“主框架”单元,一切都没有错误地构建。
问题:当我从 XE5 运行应用程序时,它似乎开始正常启动,但在到达第一行代码“Application.Initialize;”之前就死机了 在项目文件中。请注意,我还没有编写任何代码来创建位于 BPL 中的“主机”实例。我只是将它的单位添加到使用子句中。XE5 中没有显示错误消息,也没有任何内容发布到 Build 或 Output 窗口。如果我从 uses 子句中注释掉“主框架”单元,则应用程序运行良好,并显示空的主窗口。
注意:该应用程序使用 JVcl、NativeXml、TsiLang、ZipForge 和 FastReports。
delphi-xe5 - 如何将 Delphi 解决方案拆分为可重用的运行时包?
我从 Delphi XE5 开始,我想将我的应用程序拆分为一个 exe 和多个可重用库。这意味着我不想在 DLL 或运行时包中拆分正在运行的 *.exe 应用程序。
为了实现这一点,我看到在 delphi 中我们可以创建运行时包,我遵循以下步骤:
- 我创建了一个新的 VCL Forms Application 项目(EXE 项目)。
- 我已将一个新的包项目(BPL 项目)添加到项目组中,并且我已修改其项目选项以将使用选项设置为“仅运行时”并将构建控制设置为“显式重建”。
- 我在 EXE 项目和 BPL 项目之间添加了一个依赖项(EXE 项目依赖于 BPL 项目)。
- 最后我编译了BPL项目并将生成的DCP文件作为运行时包添加到EXE项目中(Project options/Package/Runtime Packages)。
但是,当我在 EXE 项目上添加引用以使用 BPL 项目中的模块(例如 moduleX)时,编译器会给我一个如下错误:
[dcc32 致命错误] ModuleX.pas(7): F1026 File not found: 'C:\DDDProject\MyEXEProject\ModuleX.dcu'
如果我在 EXE 项目 (MyEXEProject) 中将“与运行时包链接”选项标记为选中,则解决方案编译时不会出错,但我无法运行或调试应用程序。
请问,谁能帮帮我?
delphi - 捕获缺少的运行时包异常错误
我部署了一个使用运行时包构建的应用程序。
有什么方法可以捕获丢失包文件的错误异常?
我想更改文本并显示更多系统信息。
由于应用程序甚至不会启动,因为它依赖于这个文件,我不知道如何捕捉这些异常。
delphi - 在运行时从包中加载表单
我目前正在研究一些插件概念,并且在我研究使用 dll 或 BPls 的过程中遇到了,我现在决定使用 bpls。
我想知道什么时候必须使用 UnloadPackage(包模块);最好的视图,因为加载后立即给我带来什么,因为形状然后立即消失
当前的程序结构
包加载器.exe
plugin.bpl - uPlugin.pas
delphi - 使用 .bpl 作为外部模块的安全性
我还是 delphi 的新手,我开发了一个在运行时加载 bpl 文件的应用程序,遵循本指南http://edn.embarcadero.com/article/27178
bpl 文件将与主应用程序位于同一文件夹中,我想知道这样做的安全性是什么?
我发现了这个问题External modules security但它并没有完全回答我的问题。
我的意思是,如果客户复制这些 bpl 文件并将它们提供给其他开发人员,如果他们具有相同的 delphi 版本,他们可以使用/访问它们吗?或者以某种方式访问源代码?
delphi - Delphi,如何在两个不同的包中安装具有相同名称的组件
我需要安装两个不同的组件包,第一个使用 BDE 连接,第二个使用 FireDAC 连接,它们都包含一个名为“TKsAnalExpr”的组件,它包含在一个名为“UAnalExpr”的单元中。
我正确安装了其中一个包,但是当我尝试安装第二个包时,Delphi 显示以下错误消息:
注册过程,包 C:\Entorno Delphi XE3\BPL\Kactus.bpl 中的 Kactus@UAnalExpr.Register 引发异常类 EFilerError: 组件 TKsAnalExpr 无法被包 kactus.bpl 注册,因为它已经被包 KactusOP.bpl 注册
我使用命名空间更改了单位的名称,例如PkgeBDE.UAnalExpr
分别PkgeFireD.UAnalExpr
。
但是当我尝试再次安装第二个包时,它显示了上面相同的错误消息。
我正在使用 XE3 Upd 1 和 FireDAC 8.0.5。
PD:如果有人想知道,“AnalExpr”代表“Analizador de Expresiones”。呵呵。