I refactor your old code for free!

Do You Have Legacy Delphi Code? I Can Modernize It! Are you still working with old Delphi codebases using AnsiStrings, raw pointers in arrays, TStringList misusage, hardcoded typecasts, goto, blocking timers, Application.ProcessMessages, or excessive global variables? Would you like to upgrade it to modern coding standards, ensuring compatibility with Delphi 11.3 and 64-bit environments? I

I refactor your old code for free! Read More »

Converting VCL code to FMX

Even though there are a few tools for porting a project from the VCL (Visual Component Library) to FMX (FireMonkey) the process is not easy especially because not all VCL components have direct FMX equivalents. Some components require substitution, and some functionality must be reimplemented. The problem deepens with 3rd party VCL components. Tools for

Converting VCL code to FMX Read More »

Delphi Firemonkey – ld.exe cannot find shlwapi.dll: No such file or directory

After installing FMX and using it for a while I started getting a weird “ld.exe cannot find shlwapi.dll” message. There was nothing like this to be found on the internet! I posted a question of StackOverflow but people started to point in (as later turned out to be) totally wrong directions. The complete error msg

Delphi Firemonkey – ld.exe cannot find shlwapi.dll: No such file or directory Read More »

Cross-platform development with Firemonkey – Tool-chain setup

This is a chapter from “Delphi in all its glory” series. Preparing for cross-platform An SDK is required for the following platforms: Multi-device applications for the iOS Device – 64-bit platform. Multi-device applications for the Android platform. Multi-device applications for the Linux platform. If you haven’t chouse to install them during Delphi setup, you need

Cross-platform development with Firemonkey – Tool-chain setup Read More »

The four rules of packages

Rule #1: Always separate your business-logic code from the GUI code. Without this rule, all your code will be a hot mess, where libraries cannot exist. Rule #2: There should be no floating units. A unit should always belong to a project (Dpr or Dpk). Without this, you will fail to properly generate some DCU

The four rules of packages Read More »

Bug: TRichEdit removes images when TRichEdit.ReadOnly = True

When trying to load an RTF file using RichEdit.Lines.LoadFromFile(FileName) and RichEdit.ReadOnly = True the RichEdit removes all images from the RTF file showing an empty placeholder. Solution: This is an Embarcadero’s bug. The solution is to call these methods in this specific order with these specific parameters: Note that TRichEdit has full support for images

Bug: TRichEdit removes images when TRichEdit.ReadOnly = True Read More »

Say no to crappy images in your Delphi programs. Finding the best resizing algorithm.

So, because I built a program that has to resize/scale images up and down, I built this tool to test 13 resizing algorithms for Delphi. Tested algorithms Tests: Two of the above tests include 3rd party algorithms.If you don’t have access to their source code, you will have to switch off the {$3RDPARTY} switch. Test

Say no to crappy images in your Delphi programs. Finding the best resizing algorithm. Read More »

Delphi breakpoints

Breakpoints A breakpoint tells the debugger to pause the program’s execution at the location (line of code) where the breakpoint is. We can set source breakpoints in the Code Editor before we run the program, but also while the program is already running. The places where we can place breakpoints are marked by a blue

Delphi breakpoints Read More »

“Cheap companies making cheap mainboards” or “Why I hate laptops”

I have encountered quite a few computers where you could hear the CPU/GPU “accelerating” in the sound card. I never owned such a cheap board. Lucky me. Mainboard for enthusiasts are much better than those in the laptops and “large-scale” PC sales.The round up (https://www.techspot.com/review/2907-amd-x870-motherboards/) shows impressive values for all modern enthusiast mother boards.Again, today

“Cheap companies making cheap mainboards” or “Why I hate laptops” Read More »

Romania

I left Romania, country where I was born, about 20 years ago. I decided to take a look on how it evolved since I left and I am happy to see that things are progressing quite well.   Statistics Romania is very less populated, with a population density way under the EU average. The birth

Romania Read More »

Open source software licenses are complicated

Here is a summary (extracted from Wikipedia) of the most popular software open source license. License Latest ver Linking Distribution Modification Patent grant Private use Sublicensing TM grant Apache License 2.0 Permissive Permissive Permissive Yes Yes Permissive No BSD License 3.0 Permissive Permissive Permissive[ Manually Yes Permissive Manually Creative Commons Zero 1.0 Public Domain Public

Open source software licenses are complicated Read More »

Scroll to Top