In a Delphi application, when you hover over a border icon, e.g.:
- Minimize
- Maximize
- Restore
it doesn't behave correctly:
Compare to an application that does behave correctly:
Step to Reproduce
- Click File, New, VCL Forms Application - Delphi
- Click Run (F9)
- Hover over the Minimize, Maximize, or Close buttons.
How to fix?
- Windows 10, 64-bit (running natively on desktop PC)
- Delphi XE6
Edit - It also fails with Delphi 7:
and in Delphi 5:
and in Delphi 4:
I assumed (i.e. was afraid) that it was caused by the ThemeServices engine; where they might have thought it was cool to not honor the user's preferences. But looks like it's something more fundamental.
Compatibility Modes
- none: fails
- Windows 8: fails
- Windows 7: fails
- Windows Vista (Service Pack 2): fails
- Windows Vista (Service Pack 2): fails
- Windows Vista: fails
- Windows XP (Service Pack 3) (non-client area theming disabled): works
- Windows XP (Service Pack 2) (non-client area theming disabled): works
- Windows 98 / Windows Me (non-client area theming disabled): works
- Windows 95 (non-client area theming disabled): works
Skype
Also fails in Skype; also written in Delphi:
High DPI is the trigger
I finally figured out why it fails on every Windows 10 machine i've used; but not for everyone. High dpi.
Set your dpi to 97 (101%) or higher.
Close Enough
Dalija's solutions works:
We'll ignore the problem with the tooltip and live to fight another day.
It should also be noted that Windows 10 will suggest that you might have to sign off and sign back on for some applications to work correctly after changing the DPI. This is definitely true of Delphi.
It should also be noted that Delphi doesn't tolerate the DPI changing behind its back like this. This includes adjusting the zoom slider. This would also include placing the app on any monitor besides the primary monitor.
And we never did figure out what the problem is; only kicked it down the road for users running multiple monitors.
QC Bug Report
Because Bor...Impr...CodeG...Embarca... Idera's QC site is behind a pay-wall, here's a copy of the bug report:
As you can see: nobody cares.