What do you want is to apply a Windows Style file to the entire application, so even dialogs are themed.
Exactly. Everything should be possible to be themed — every single part of every single object (component and form).
There are commercial things to do that in every language, of course commercial, I don't find one for lazarus, and you?
Unfortunately, I didn't find anything sensible either — that's why I'm begging for a skinning system.
Here it should be noted that such a skinning system should work slightly differently than the one known from RAD Studio, mainly because of heaviness and resourcefulness.
First of all, because rendering the interface entirely based on a set of PNG images (worse 32-bit) is inefficient on Windows, so the interface can flicker on weaker computers. Secondly, because it makes no sense to render single-color elements (e.g. component backgrounds) using images, since the same can be achieved using primitives, e.g.
Canvas.Rectangle or
Canvas.FillRect methods, saving a lot of computing power — which I belive is not possible in RAD Studio. The same for simple gradients — there is a
Canvas.GradientFill method, which is much faster than the rendering of stretched image.
In addition, changing the theme should not force the form to be recreated (destroyed and recreated), because it significantly reduces the usability of this system.