Jump to content
softtouch

BPL creation failed when adding 3rd. party components

Recommended Posts

I create a new package, add a form, compile and the ide add the needed dcp files like rtl.dcp etc.

The bpl gets created just fine.

Now I drop the synedit memo on the form, compile, and it popup:

 

Add SynEditDR.
SynEditDR contains implicit unit(s) SynEdit, SynEditDragDrop, SynEditDataObject, SynEditExport, SynEditStrConst, SynEditMiscProcs, SynDWrite, SynEditTypes, SynUnicode, SynEditTextBuffer, SynHighlighterMulti, SynEditHighlighter, SynEditMiscClasses, SynEditCodeFolding, SynEditKeyConst, SynExportHTML, SynEditWordWrap, SynEditUndo, SynEditKeyCmds, SynEditScrollBars, SynEditKbdHandler.

 

und when I allow to add them, I get an error:

 

[dcc64 Fatal Error] Package1.dpk(35): E2202 Required package 'SynEditDR' not found

 

Synedit works just fine in a normal vcl app.

 

What am I doing wrong?

There are a handful of 3rd. party components doing exactly the same, when added to a form in a bpl project.

Share this post


Link to post
22 minutes ago, softtouch said:

und when I allow to add them

You probably didn't allow to add the units,  but allowed to add SynEditDR to the requires clause instead. If you deny that request, the units are compiled into your package.

 

If you want to make use of the SynEdit package you must make sure that SynEditDR.dcp can be found during compile and deploy the corresponding bpl with your application.

Share this post


Link to post

Oh heck, I would have to deploy a lot of bpl then. I think I will just switch to use a dll instead of a bpl. I just tried it with a dll, and no issue at all, the 3rd. party control are displayed just fine.

Share this post


Link to post
22 minutes ago, softtouch said:

Oh heck, I would have to deploy a lot of bpl then. I think I will just switch to use a dll instead of a bpl. I just tried it with a dll, and no issue at all, the 3rd. party control are displayed just fine.

Be careful here. A DLL contains a different instance of the memory manager (unless you use ShareMem) and all the RTL and VCL code than the host application. Better make sure the DLL interface for the host app is written using API or COM compatible data types in the parameters exclusively, otherwise you may run into any number of weird problems.

Share this post


Link to post
2 hours ago, PeterBelow said:

Be careful here. A DLL contains a different instance of the memory manager (unless you use ShareMem) and all the RTL and VCL code than the host application. Better make sure the DLL interface for the host app is written using API or COM compatible data types in the parameters exclusively, otherwise you may run into any number of weird problems.

Thanks. I use sharemem, and I played around a little, and it seems to work fine as of now.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×