A considerable amount of change in designtime interfaces has happened since Delphi 5. In fact the biggest single change ever in designtime APIs happened between Delphi 6 and Delphi 5. Check gExperts web page for OTA information here.
There is one level of changes starting at Delphi 6, which include:
Rename of all units in design clause. Old names with "Dsgn" in it are renamed. What was formerly DsgnIntf, is now DesignIntf, DesignEditors, DesignWindows, etc.
Some notifications at designtime are gone. DesignWindows has changed to use interfaces.
I tried to build in Delphi 2007 which is almost the same as Delphi 2005, and where I got stuck is at this point:
procedure ComponentDeleted(comp: TComponent);override;
That method is no longer there, and the change is now you have to use the IFormDesigner interface, and you have to call RegisterDesignNotification
and UnregisterDesignNOtification
in your helper or window constructor and destructor.
Beyond that I see at least 10 or 20 other things that need fixing, besides renames of units, many functions have moved from one place to another, and types have changed, many things which were actual types (TFormDesigner) are now referenced via Interfaces (IDesigner).
It's outside my ability to port this (TComponentList related changes to IDesignSelection is out of my depth), and I think that if anybody can do it, it would be someone with prior experience in designtime stuff, including people who work on gExperts, and other designtime stuff.