Tuesday, August 24, 2004

VCL Component registration.

How many of you have found that when you create a design-time package for Delphi, there are many things you can do in the unit initialization equally as well as using the “sanctioned” technique of providing a single global procedure called “Register”?  You may have discovered that things like the Open Tools API services are available, you can register property/component editors with some success as well.  Well... stop it!  Please make sure you are using the properly sanctioned technique of placing all this code into a “Register” procedure in one or more units in the design-time package. 

There are some new features and services that the next version of Delphi that heavily relies on the registration of wizard, components, property/component editors, and custom modules be done from within a Register procedure.  Let's just say that the next version of Delphi will “demand” that component developers are following the rules.  The good thing about this is that using the Register procedure will work for all versions of Delphi, so you shouldn't be breaking any backward compatibility, nor are you going to be required to introduce yet another IFDEF.  If you take a quick look over your code and make sure that this is the case, then you should be in very good shape and ready when we release the next version of Delphi.


  1. Do I dare hope that component/package registration will be cleaned up? To make a consistant method for devs to distribute components? After a fresh install of Delphi it takes a half day to install all the components.

    - Some devs only give up a .pas to add to an existing package or new one.

    - Some give us an installer that simply copies packages to a new folder, but no installation, no adding to the library path. That is the worst, you have no idea if it did or did not install it for you.

    - The best companies copy the files, install the components into the IDE, add to the library path and give you an uninstaller. Those are far and few between though.

    Give component developers an easy, *consistent* method of packaging components, one that wraps it in an installer, that puts packages for different versions in a best-practices location, that knows how to merge in the help files, etc.

    Please... Please... my boss hates Delphi for that one reason; because it is an utter, god pounded pain in the butt to install components.

  2. Something like Eclipse's plugin installation: just drop zip/jar files in a plugin/component directory, and the IDE will do it all. For Delphi.NET, this should be easy.


Please keep your comments related to the post on which you are commenting. No spam, personal attacks, or general nastiness. I will be watching and will delete comments I find irrelevant, offensive and unnecessary.