The DevExpress skinning system is a beast. Normally most things work well. However, when your TdxBarManager and your TdxRibbon component and their helpers and all becomes advanced and convoluted enough and especially when you are using visual inheritance the skinning system can get into update notification loops that can consume up to 15 minutes on a modern dev machine. I have found that the following actions will alleviate the problem;
1. For all of you projects; select "Project|Modify Skin options..."
1a. Uncheck "Enable Skin Support".
1b. Click "Default"
Now - you will not get into the "problem" of the IDE filling up your TForm units with skin units in the uses.
2. For all projects, put the TdxSkinController component on a DataModule and include that DM in your project. Copy all (desirable) skin units to this module. They are not needed anywhere else.
2a. The DFM setting of the component must be "UseSkins = false". Perhaps even "UseNative = false" but that i can not confirm.
Normally when you code and use the "Design" view in the IDE you never open the skinning unit.
This leaves the IDE completely without skinning. And THAT may help a lot and save a lot of time. At least here in my machine 🙂
Also note that if you have several projects in a project group, opening a project that was not prepared like above containing a TdxSkinUnit can start the notification loop hysteria for an opened unrelated project. That is the skinning update notification are IDE-global.
If you do not like the idea of having a separate DataModule, then disabling skins (2a above) might also help. One benefit, however, of putting the skinning in DataModule's is that you can have one with just the controller component and other ones with the skins uses clauses. You could then choose the "Only Bezier" for one distribution and "All Skins" for another.
HTH (Hope this Helps).
Regards!
I'm aware DX skins can be loaded dynamically, this post do not apply to that usage of DX skins.