I've also worked on a Delphi based CRM and I've wasted man months of my life time on a task we called "checking forms". You see, Delphi's UI designer is (was?) pixel based (widgets have fixed x/y/w/h), but strings translated to different human languages have different lengths (in pixel). (Complicated by dynamically calculated and variable length strings.)
And so for every release, for every language version (of which there were like 15), engineers would click through every single form in this product. Then fix any widgets were the text was cut off specifically for that language manually in a shitty commercial i18n tool that can show you Delphi forms, but only the outlines of controls.
It took an engineer about 3 weeks of effort to go through the product in one language. I may never forget what "Ok" and "Cancel" mean in several languages I otherwise do not know at all.
Java and C# changed everything for me with their constraint based layouts. I believe later Delphi versions added that, but it was definitely after others lead the way.
(Maybe there was a better way to do it with Delphi, but this was >10 years ago ago, and the product was _old_ even back then, and it was my first job and I didn't question why things were done this way.)
The translation systems were really atrocious. I had to develop one myself because the ones that I evaluated were useless.
It took me a couple of weeks, but once I found the right (and only reasonable) way, with the help of library introspection features it was very easy to add new automated translations.
I wrote it down in my defunct blog, 15 years ago. I guess you didn't find it at the time.
WinForms designer is actual C# code, you can copy and execute that code outside of the designer. It's possible to search for references to a control in the designer, just the same as any other code. Often in Delphi, trying to accomplish the same thing in code as in the designer had a very obscure relationship. WPF feels much closer to the way Delphi did things, where your GUI is defined in different format than your code.
In WinForms, creating a new control requires, well, just write a class that descends from Control, compile, and then you can start using it. In Delphi, creating a new control means you need an independent project, compile it into a package, and figuring out how to install it. I remember fighting Delphi trying to understand the package management system, and it was way more complicated.
In WinForms, when you design a new control, it actually executes your code, so design time behaviors actually reflect what will happen at runtime. I remember having stuff in Delphi where a large control would be collapsed into a single line, and you couldn't actually tell what you were working with until you run it.
That's because the guy in charge of Delphi left for Microsoft and is still in charge of Visual Studio :)
Delphi – why won't it die? (2013)