Our main delphi VCL application has a number of plugins (all written in delphi) as DLL's. Within the DLL's we want to have VCL forms that get requested to be shown by the main app.

Our main delphi VCL application has a number of plugins (all written in delphi) as DLL's. Within the DLL's we want to have VCL forms that get requested to be shown by the main app.

This always worked well for us when the forms were shown modal; but now I am switching some forms to be non-modal. I pass the TApplication handle of the main app into the DLL and assign it to VCL.Forms.Application inside the DLL. This seemed to resolve most peculiarities (like the form disappearing and not reappearing after minimizing), but the one thing that still seems wrong is the form from the DLL is always on top of the main application form (it's not set to stay on top).

Am I doing something I just shouldn't be doing, or should this work fine?

Comments

  1. Marco Cantù Our original design goal was to allow third parties to develop these plugins and as such we defined a standard C interface used by the plugin DLL. If BPL's are the better way to share the VCL then I think we could probably support both the DLL's for third party plugins, and BPLs for our own internal ones. I didn't realize until I just started doing the research that BPLs can be dynamically loaded at runtime. Thanks for the suggestion. This article was really helpful BTW: edn.embarcadero.com - Dynamic packages in Delphi

    ReplyDelete

Post a Comment