My workaround is to add a TsAlphaImageList with the Icon, add this to the image-property of the button and set image-Index to -1 to disable the icon and to 0 to enable it.
The way according to MS standard will be to get the icon via LoadIcon-Function with IDI_SHIELD as lpIconName if property ElevationRequired is true and paint it with the skin. Normaly the icon will be aligned left on the button. The Icon looks s little different in Vista, Win7, Win8-10. I think LoadIcon will always use the icon for the intalled OS.
If ther will be a way to select alignt left, right, top, bottom like aligning the image from an inmaglist you can design the button as you need it.