[DUG] Delphi 7 to Delphi 2009

Jeremy North jeremy.north at gmail.com
Fri Feb 20 15:24:05 NZDT 2009


Rudy Velthuis has released an IDE expert to perform the same behaviour
that the old Install Package did.

http://rvelthuis.de/programs/compinstall.html

The "Installing Component Packages" index in the Delphi 2007 (haven't
checked other versions) leads to the "Working with Packages and
Components: Overview" topic which has a number of sub topics which I'm
sure is full of useful information.

On Fri, Feb 20, 2009 at 10:10 AM, John Bird <johnkbird at paradise.net.nz> wrote:
> Here are my notes, I found some great instructions on Steve Trefethens blog
> about installing components in D2005/D2006/D2007.  (He is ex CodeGear)
>
> I have added notes/examples from my own situation, I make a folder under my
> source tree called components, and install my component library from there
>
> Once you get the essentials it is real simple, but you need to follow a
> couple of instructions ...
>
> [From Steve Trefethen]
>
> How to Install Components in the Delphi IDE
>
> Delphi 7 has a main menu option for Component|Install Component that guides
> you through the process of getting a component onto the Palette.
> Unfortunately, that functionality was lost in the IDE's transformation to
> the Borland Developer Studio. I won't go into details but I was not happy to
> say the least when I learned of this change.
>
> Regardless, your choices of installing components hasn't changed it's just
> you're no longer guided through the process. I thought it might be useful to
> walk through a few scenarios using Delphi 2007. There are many ways to
> accomplish these tasks so don't consider this your only option.
>
> Creating and installing a new component into a new Package
> Here are the steps necessary to create a new component and get it installed
> onto the palette though refer to the section below on the caveat with the
> New VCL Component wizard:
>
>   1. Start the IDE
>   2. Select File|New|Package
>   3. Select File|Save As and give your package the desired name
>   4. Select View|Project Manager
>   5. Right click the package node and select Options then be sure to fill
> in the Description for this package as it will be used in the Install
> Packages dialog
>   6. Select Component|New VCL Component... which will display the New VCL
> Component Wizard (see note below)
>   7. Select TButton as the ancestor and click Next
>   8. Leave the defaults for Classname etc. and click Next
>   9. Select "Add unit to Package1.bdsproj project"
>  10. Select View|Project Manager and right click Package1 and select
> Install
>
> That will get you a new design time package with a new component installed
> and on your palette. If you have an existing .PAS file that contains a
> component(s) all you need to do is right click the Contains node under your
> package and select "Add...".
>
> (JKB Open project D:\D2007\Components\JohnComponents1.dpk
> Then in the right most window right click folder icon and select Add
> then right click component icon and select Install - compiles etc)
>
> Installing an existing component into a new package
> The steps here are pretty much the same as above except at step 4 instead of
> starting the New VCL Component wizard simply open the .PAS file that
> contains the component(s) and add it to the Contains node of your package.
>
> Installing components into an existing package
> In this case, you've already created and installed a design time package and
> you'd like to add a new component.
>
>   1. Select Component|Install Packages (Sure, this may seem a bit odd since
> the package we want is already installed)
>   2. Find the desired package and select it in the Design Packages listbox
>   3. Click the Edit button which will prompt you to cancel the dialog and
> open the package as a project
>   4. Select View|Project Manager
>   5. Expand the package node and right click the Contains node under the
> package and select "Add..." and add your existing .PAS file or select
> Component|New VCL Component and follow the steps above
>   6. Right click the package node in the Project Manager and select Compile
> which will rebuild and reinstall your design time package
>
> Tue 10 Feb 2009 0:50:42 Vista D2007 further notes:
>  -Edit unit to change Register procedure to install into a different tab if
> wished.
> -Save into Components folder.
>  -close all
>  -Open project d2007\Components\JohnComponents1.dpk/bpl (?)
>  -right click Contains and select Add
>  -select unit copied into Components
>  -right click .bpl box icon, and select compile or install (I think both do
> the same).
>
> Installing existing design time packages
> If you have existing component packages and you want to get them on the
> palette:
>
>   1. Select Component|Install Packages
>   2. Click the Add button and multi-select the design time packages you
> want to install then click Ok. You don't really have to worry too much if
> the package you select is design time or runtime as the IDE will let you
> know if there is an issue installing the package.
>
> The issue with the New VCL Component Wizard
> There is one rather major flaw with the New VCL Component Wizard and that's
> that it places both design-time and runtime code into a single unit. The
> runtime code is the code that implements the component itself. The
> design-time code is the Register procedure with the call to
> RegisterComponents which should be removed and placed in a different unit
> which belongs it a design time package. In the first scenario above it would
> be wise to create a second, design-time only package and split the code as
> described. Additionally, you should mark your packages explicitly as
> design-time and runtime using Usage Options from the Project Options dialog.
>
> Mixing design-time and runtime code in a single package is a bad idea and
> needs to be  avoided. Design-time code isn't necessary at runtime and
> typically contains property and/or component editors along with various
> registration calls which are only meaningful when the package is installed
> in the IDE.
>
> Let me know if this was helpful and if you've been impacted by the removal
> of Component|Install Component functionality. I've already discussed it with
> Nick Hodges.


More information about the Delphi mailing list