简体   繁体   English

分发带有第三方UI元素的设计时程序包

[英]Distributing a design-time package w/third-party UI elements

Now that I am learning more about design time aspects of component development, I have what may turn out to be a couple of IDE "plugins" targeting Delphi 2007 (+ others if compatible). 现在,我学习了更多有关组件开发的设计时间方面的知识,我发现可能有几个针对Delphi 2007的IDE“插件”(如果兼容,还有其他)。

The forms / UI for these, ideally, will utilize some of the third party components I use regularly. 理想情况下,这些表单/ UI将利用我经常使用的某些第三方组件。 Assuming the licensing is okay to distribute those components for an IDE plugin, etc., what do I need to do differently to prepare the distribution package, as compared to from what one would do on a package with "full source"? 假设可以分发这些组件以用于IDE插件等,许可,与准备带有“完整源代码”的软件包相比,准备分发软件包需要做些什么?

(I hope this question makes sense. Please be kind and ask questions if not). (我希望这个问题是有道理的。请友善并提出问题)。

You need to distribute the BPL compiled for each version of Delphi you will support (Version + Update) and then only distribute the BPL. 您需要分发针对要支持的每个Delphi版本(版本+更新)编译的BPL,然后仅分发BPL。 Set up a Virtual Machine to test it in. The BPL is a special DLL, so you are only distributing a binary, which should work with your licenses. 设置一个虚拟机进行测试。BPL是一个特殊的DLL,因此您仅分发二进制文件,该文件应与您的许可证一起使用。

Distributing the .PAS or .DCU would violate the license agreement most likely. 分发.PAS或.DCU很可能会违反许可协议。

You will probably find that this causes all sorts of problems. 您可能会发现这会导致各种问题。

GExperts does it differently. GExperts的做法有所不同。 It is a DLL that statically links to some 3rd party controls and references only Delphi's own runtime packages. 它是一个DLL,静态链接到某些第三方控件,并且仅引用Delphi自己的运行时程序包。 This cannot cause any conflicts with other packages because the statically linked units are not visible to the IDE. 这不会引起与其他软件包的任何冲突,因为静态链接的单元对IDE不可见。 It also means that GExperts does not need to distribute any runtime packages. 这也意味着GExperts不需要分发任何运行时程序包。

Do not distribute those components in your design-time package. 不要在设计时程序包中分发这些组件。 It will cause headaches for you and your customers if your customers also happen to want to use those same components in their own projects. 如果您的客户也恰好想在自己的项目中使用那些相同的组件,则将为您和您的客户带来麻烦。 If you put those components' units in your design-time package, then your customers will not be able to also have their own copy of those components installed on the Tool Palette because only one copy of a unit may be loaded at a time. 如果将这些组件的单元放入设计时套件中,那么客户将无法在Tool Palette上安装自己的那些组件副本,因为一次只能加载一个组件副本。

The components you're using should have come in a run-time package from their vendor already. 您正在使用的组件应该已经从其供应商处获得了运行时软件包。 Put that package in your design-time package's "requires" list. 将该程序包放入设计时程序包的“要求”列表中。 Distribute the .bpl file only; 仅分发.bpl文件; I think you can install it in the same directory as your design-time package. 我认为您可以将其安装在与设计时软件包相同的目录中。

That run-time package will also be a requirement of the vendor's design-time package, which is what your customers will have installed in their IDE. 该运行时程序包也将是供应商设计时程序包的要求,这是您的客户将在其IDE中安装的程序包。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM