Classname with !dx suffix?

Today I had an interesting bug to fix:

I used a form’s Classname (Yes, I have a reason not to use the Name.) to persist its size in the registry and wondered why it didn’t work. Looking at the registry entries I found, that there was an entry with the class name suffixed by a ‘!dx’.

So I placed an appropriate breakpoint in the constructor and destructor respectively of the form and found that everything was fine in the constructor but in the destructor there was this suffix.

On further investigation it turned out that the culprit was dxgettext. In one of the contributions that were submitted by users but which in this case I committed myself, the class name was suffixed with !dx as a debug help. It’s not necessary for the functionality.

The fix of course was to disable this code. There is now a new conditional define dx_ChangeProxyClassName in the current gnugettext.pas code, that controls whether the suffix is added or not. The default is to not add it.