Graphic Delphi

Title: BDS 2006 Splash Screen Icon
Question: How to put an icon and caption for a design-time component library in the BDS 2006 splash screen from a Win32 package.
Answer:
Although this is under the category "Delphi 7", it is really only for BDS. I haven't been here for a while, but it seems that the site is neglected if there is no category for the BDS versions. Can't get the syntax highlighting working either.
See also these articles for the .NET way and more information on experts:
http://www.delphi3000.com/articles/article_3870.asp
http://www.delphi3000.com/articles/article_3661.asp
Steps:
1. Create a new design-time package.
2. Add the unit below (and create the resource file).
3. Compile, install the package and re-start BDS.
unit BDSSplashRegister;
interface
implementation
uses
Graphics, ToolsAPI, DesignIntf, SysUtils;
// Create a .res file with your favourite resource editor.
// Add a 24x24 bitmap. Make sure to use an UPPERCASE id, and
// reference it below in the same case.
{$R BDSSplashRegister.res}
function BitmapFromResource(const ABitmapName: string): TBitmap;
begin
Result := Graphics.TBitmap.Create;
Result.LoadFromResourceName(hInstance, ABitmapName);
end;
initialization
// Force the IDE to load this package if it has made the decision to demand-load it.
// You may want to put you splash screen icon in its own package to avoid the overhead
// of loading all your components on start-up.
ForceDemandLoadState(dlDisable); // In DesignIntf
// Use the ToolsAPI to add the icon and caption. Read the comments for
// IOTASplashScreenServices in ToolsAPI for information on BDS personalities.
SplashScreenServices.AddProductBitmap('Your own library in the BDS splash form',
BitmapFromResource('BDSSPLASHDEMO').Handle); // UPPERCASE resource name
// Add another one to demo the optional parameters
SplashScreenServices.AddProductBitmap('Unregistered Library!',
BitmapFromResource('BDSSPLASHDEMO').Handle, true, 'Some licencing info',
'[Text appended after caption]');
// Have a chance to admire our handiwork
Sleep(5000);
end.