Thursday 21 December 2017

Auto create forms and data modules does not quite work

I've recently moved to Delphi 10.1 Berlin Update 2 from using XE and XE5. One thing that caught me out was that I forgot to turn off the 'Auto create forms and data modules' in the 'Form Designer' options. This setting means that when you add a form or data module to a project it gets auto-created at run-time.



The problem with this setting is that it does not fully work. I have a project where I do not want to auto create any forms or data modules, I have a class that is responsible for doing the initial creation of the required forms and objects, but if I add a form or data module to the project it always gets added to the auto create list in the project. This option assumes you want just one form in the list, once one is added it does not add anymore.

This problem could occur in all versions of XE and the now the more recent versions (DX), I plan to check this with XE and will hopefully soon be updating to the latest version of Delphi.

Tuesday 5 December 2017

Delphi interesting skinning issue with .NET COM wrapper

I've come across an interesting issue with skinning and invoking a .NET Windows form and messagebox. I have a test Delphi application that is skinned using either Alpha Skins or setting the custom styles, I then invoke a .NET wrapper DLL developed in Visual Studio 2015 (COM interop)  and call the method to show a Windows form, this does not get skinned. However on the Windows form there is a button that shows a Windows messagebox, this does get skinned, see image below.


It would be nice if the Windows form also was skinned to match the Delphi application and it seems strange that the Windows messagebox which is invoked by the Windows form is skinned.