Today I made some small changes to the CustomContainerPack.
If you don’t know about the Custom Container Pack, see my previous blog post.
Apart from removing two with statements I changed the place where the wizard shows up in the File -> New -> Other dialog. Up to Delphi 7 it is still in the “New” category.
For newer Delphi versions, it now shows up in the “Delphi Files” category:
It took me quite a while to figure out how to do it. Just returning “Delphi Files” from the IOTARepositoryWizard.GetPage function doesn’t work. The trick is to use the IOTARepositoryWizard80 interface that was introduced with Delphi 2005 (or, judging from the name, probably with Delphi 8). It added two new functions to IOTARepositoryWizard:
function GetPersonality: string; function GetGalleryCategory: IOTAGalleryCategory;
GetPersonality is easy, you just return one of the pre-defined string constants sXxxxPersonality, in this case: sDelphiPersonality
function TCCWizard.GetPersonality: string; begin Result := sDelphiPersonality; end;
(If anybody wants to check if CustomContainerCack can be used with the C++Builder personality, please contact me through my Google+ page.)
GetGalleryCategory is a bit more tricky. I found the solution in Steve’s Blog:
function TCCWizard.GetGalleryCategory: IOTAGalleryCategory; var cat: IOTAGalleryCategory; catMgr: IOTAGalleryCategoryManager; begin catMgr := (BorlandIDEServices as IOTAGalleryCategoryManager); Assert(Assigned(catMgr)); cat := catMgr.FindCategory(sCategoryDelphiNewFiles); Assert(Assigned(cat)); Result := cat; end;