1
votes

We have projects that make use of a 3rd party VCL component, originally developed by Aardvark Consulting, called AaWiz.

This component greatly simplifies the process of creating user interface wizards. Wizards can even be run from within the Delphi IDE, without writing code or even compiling the project.

Currently, we have this component on Delphi 5. Has anyone migrated it to Delphi 2005 or higher?

Thank you

1
What do you mean by "or higher"? Porting to D2005 should be easy. Porting to Unicode is likely to be more tricky. Can you be precise?David Heffernan
We are planning to eventually migrate our projects to D2010 but have not finalized which 3rd party component we will port. But for now, we are migrating projects from D5 to D2005. So before we start, we would like to know whether anyone has migrated this component to D2005. Thank youuser1202134
If you're going to port up from Delphi 5, DO NOT PORT to 2005. The IDE is unstable. Delphi 2007 is the last, and the best, non-Unicode delphi version. Port up to Delphi 7 or 2007. Do not try to use 2005, or 2006. They are crap.Warren P
Have you considered using the JVCL JvWizard instead? That's what I would use.Warren P
Hi Warren, thanks for your comments. Would you recommend porting first to Delphi 7 then 2007 or try going straight to 2007?user1202134

1 Answers

3
votes

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:

  1. 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.

  2. 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.