How InstallAware Fixed the Delphi ARM64 Problem

In this article, you’ll discover:

  • How open source solved the long wait for true ARM64.
  • Why ARM64EC fails for low level Windows tasks.
  • Simple steps to move your Delphi code to Lazarus.
  • Tips for fixing tricky form conversions easily.

ave you been waiting for a Delphi compiler that works on ARM64? You are not alone. Many software builders waited almost ten years. Finally, the team at InstallAware decided to act. They sponsored a free tool called Lazarus to get the job done.

John Gaver from InstallAware Skunkworks shared his thoughts on this big win. He said, “The open-source Free Pascal compiler that Lazarus is based on had been nearly ARM64-compatible for almost five years. But nearly isn’t good enough, and Delphi wasn’t getting anywhere. We took leadership, and harnessed the power of open source: We rallied the community, and made a concerted team effort to get ARM64 outputs working! The result is a near-identical clone of Delphi, now running beautifully on Desktop Windows ARM64.”

He also explained why this new code is so vital. “Why do we care when Windows 10/11 on ARM64 already has near-excellent emulation of both x86 and x64 apps? Many scenarios, such as shell extensions, require pure ARM64 support and cannot be emulated. We made a case study out of just a scenario: DiskZIP, our patented transparent compressor, has very deep, low-level Windows integration. Our ARM64 port runs wonderfully, proving that Free Pascal/Lazarus for ARM64 is production-ready; having survived this manner of industrial grade testing. We also found the porting process from Delphi to Lazarus to be very pleasant, completing the task in under two weeks and that is for a very complex codebase, evolving two decades and counting!”

The Trap of ARM64EC

It is important to know that ARM64EC is not the same as true ARM64. Some people think ARM64EC will solve their problems. Sadly, it is completely useless if you need a real compiler for specific tasks. For example, Windows File Explorer needs a true ARM64 process to run shell extensions. If you try to use ARM64EC, it simply will not work. You need the real thing to make your apps run smoothly.

Why Shell Extensions Need It

You probably use shell extensions every day without knowing it. They power the menus that pop up when you right click a file. They also run tools like copy hooks, tool tips, and drag and drop features. For all these things to work on a modern machine, they require a true ARM64 output. File Explorer will reject anything else.

How to Make the Switch

Moving your project to Lazarus is easier than you might think. You can start by using the conversion tools built right into the program to update your old Delphi files. A good rule is to always work on a copied folder instead of your original files. If a project fails to move over smoothly, you can create an empty project and bring in your files one by one.

Fixing Tricky Forms

Sometimes, complex screens or forms do not convert well. When this happens, delete any image data and save it to a separate file first. You can always add the pictures back later. You can also ask an AI tool to help translate the code. Just take small steps to clear any hurdles.

Final Code Touches

Once your files are moved over, you will need to tweak the code. Make sure you add Windows to your uses list if it got lost during the switch. You should also replace old API names with their new Unicode versions so everything reads correctly. It takes a little effort, but the results are very rewarding.

Similar Posts