Just updated to V220.127.116.11 from V18.104.22.168 and this radio button now looks very poor at the normal 96dpi resolution. Is this a bug or a feature as I read somewhere that some work has been done on higher dpi settings.
This was a regression with non-themed drawing. We fixed this now. Next update will address this.
A possible alternative is to set Themed = true to avoid this.
Now updated to 22.214.171.124 and the TAdvOfficeRadioButton has improved. However at higher DPI setting of 120, 144 and 168, the image in the button becomes very pixelated. If the Themed property is turned on, then everything is fine. So can something be done to improve this for the Themed OFF state?
This also applies to the TAdvOfficeCheckBox.
For default style, we use a bitmap for the checkbox & radiobutton. This bitmap is stretched when running at higher DPI. The only solution we see for different resolutions, is to add different bitmaps in different size. When themed, it is the OS that does the drawing. We'll check this but it won't be trivial and need a graphic designer to have these bitmaps in many different sizes / scaled.
Would a better solution be to have higher resolution bitmaps and scale down, rather than low resolution bitmaps and try to scale up?
I see in the resource file the bitmaps for the Radio Button are 12 x 12 and the Check Box are 13 x 13. The source code seems to use a scaling factor or 12 for both, so don't know if this has a detrimental effect or not.
Sizing on such small images is always tricky, whether scale up or scale down. We'll investigate this.
I have had a quick play by using Photoshop to enlarge the images to 21 x 21. This allows for a reasonable scaling back down to lower DPI settings. Ideally the larger bitmaps need to be created from scratch rather than being scaled up, but the result is reasonable.
In my application I would prefer it if the size of these images is not scaled when Theme Mode is turned off. So would it be possible to have a property to prevent scaling?
That would save me having to remember to modify the source code after every update.
As I mentioned, we are going to investigate this.