Modernizing Industrial Software with Delphi 12
-
Industry
Machinery Manufacturing
-
Project type
Software Migration, Software Modernization
lines of code
was the Delphi version to migrate to
major problems were resolved
sec is the query performance after migration to FireDAC
Description
In May 2024, Softacom was contacted by a company, the European market leader in natural gas measurement systems. It designs and manufactures custom natural gas measurement and analysis equipment.
The company’s software was mixed, as it consisted of older parts written in Delphi and newer parts written in C#. This created maintenance bottlenecks, with 32-bit dependencies and ANSI strings corrupting multilingual field reports.
The goal was to migrate the project to Delphi 12 and add support for Linux.
The company faced the following challenges:
- Outdated components required modifications and replacements.
- Delphi’s 7 ANSI-string architecture failed to handle Unicode field data, modern APIs, and 64-bit memory limits.
- Migrating from ANSI to Unicode strings and ensuring compatibility with both 32-bit and 64-bit architectures.
- Adding support for running applications on Linux (Ubuntu, Amazon Linux) and maintaining compatibility with Windows.
Project Team Size
- 1 Delphi architect
- 2 Delphi developers
- PM

Solutions
The customer’s goals were achieved in several steps. As always, we began by analyzing the existing Delphi 7 codebase. Our team identified legacy components and documented dependencies. To understand the business logic and specific challenges, we conducted a knowledge transfer.
Here’s the list of problems we encountered and how we resolved them:
Challenge 1: Outdated Technology and Unicode Compatibility
The project relied on Delphi 7. That version lacked full Unicode support. The framework used ANSI strings by default, and this created critical limitations for modern global applications.
Difficulties:
- Upgrading to Delphi 12 required testing to ensure no data corruption during string conversions.
- TQuery and TTable (BDE components) were deprecated, requiring migration to FireDAC.
- Legacy libraries like Indy 9 or SynZip lacked HTTPS/SSL support.
Solutions:
- Migrated the codebase to Delphi 12, resolving Unicode compatibility issues.
- Migrated BDE database components to FireDAC, ensuring backward compatibility with legacy SQL.
- Migrated from Indy 9 to Indy 10 for TLS 1.2+ compliance and async I/O.
Challenge 2: Platform Limitations
The legacy app only ran on 32-bit Windows, using outdated Win32 APIs and hardcoded paths (C:\Data\). This prevented deployment on modern Linux cloud servers (AWS/Ubuntu).
Difficulties:
- Adapting Windows-specific code for Linux platforms.
- Ensuring consistency across 32-bit and 64-bit Windows architectures.
- Path delimiter conflicts (“” vs “/”) and case-sensitive file systems on Linux.
Solution:
- Used Delphi’s FMX framework for cross-platform deployment, which helped enable Linux deployment.
- Refactored platform-dependent code to work on both Windows and Linux.
- Conducted testing on 32-bit and 64-bit systems, optimizing performance for each.
Challenge 3: Obsolete User Interface
The UI was outdated. It didn’t meet modern usability standards and had complicated user interactions with the application.
Difficulties:
- Balancing aesthetic modernization with the need to retain intuitive workflows.
Solutions:
- We designed the new user-friendly UI with improved navigation and visual consistency. But we also saved the core functionality.
All the goals were successfully achieved. And in December 2024, our client reached out to Softacom again. The company requested an estimate for migrating other Delphi projects to a web-based platform.
Outcomes
- The legacy Delphi 7 application was fully migrated to Delphi 12. This provided maintainability and access to modern development tools.
- The application now runs on Windows (32-bit and 64-bit).
- The adaptation to Linux enabled development in cloud and server-based environments.