Package Magician v1.0.3

Those of you who use Package Magician (and probably those who don’t yet) may be interested to know that I have uploaded a new version V1.0.3 with the following fixes and enhancements.

  • Fix: The wildcard support in the Forbidden section simply didn’t work. The error crept in during retro-fitting the code for the older Delphi versions where the relevant if-condition was accidentally inverted.
  • Fix: Unloading Package Magician could lead to access violations.
  • Fix: Versions for XE to XE8 were missing the icon.
  • Enhacement: Packages unloaded because they are forbidden are now reloaded when the project changes, except the new project also prohibits that.
  • Enhacement: Packages loaded because they are required are no longer unloaded on project change when they have been originally loaded before.
  • Enhacement: Closing the IDE now restores the original state.

The goal is that Package Magician provides the current project with the correct package environment, but restores the previous state afterwards. It turned out quite tricky to tackle all possible constellations, f.i. when a sequel of projects require a common set of packages. Another potential problem can arise when new packages are added to the IDE while such a project is active. If anyone encounters a misbehavior of Package Magician in some cases, please drop me a line with a detailed description of that scenario.

Download: PackageMagicianSetup

There Can Only Be One – At a Time!

Handling Different Versions of Design Packages inside the IDE – Reloaded

This is a follow up of my previous post There Can Only Be One! where I describe the problems encountered when different projects need different packages or versions of loaded into the IDE during design time. In that post I came to the conclusion that the IDE is currently not able to handle this. So I decided to invest some time and wrote a plug in to address this issue. So, Ladies and Gentlemen, we proudly present: Package Magician.

If you have read my post mentioned above – you did read it, didn’t you? – What? You didn’t? OK, so go and read it now. I’ll wait here… – yes, I’ll wait… – I promise! Continue reading “There Can Only Be One – At a Time!”

On Conditional Compilation

Following up the discussion about conditional compilation that evolved from David Millington’s post on Google+  – as I mentioned there in my comments (and this answer on stackoverflow) I suggest using conditional compilation based on {$IF-constructs checking the built in constants CompilerVersion and RTLVersion. C’mon, this is available since Delphi 6 (nearly 15 years now)! It makes life so much easier. Continue reading “On Conditional Compilation”