Век живи, век учись, говорят.
Возникла проблема: старая программа, написанная, судя по всему, на Delphi, отказалась работать на новом компьютере. Такое бывает довольно часто, но вот на других новых компьютерах, с точно такими же настройками Windows 7 Pro SP1 x64 - она нормально работала! А тут - окошки портятся, контроли не работают, всё какое-то кривое. Программа, хоть и запускается, но совершенно не хочет делать некоторые вещи, например не показывает выподающие меню в некоторых важных местах.
Оказалось, что замечательная компания Microsoft в Win7 применила такой подлый трюк: если экран компьютера маленький, а разрешение - очень высокое, то по умолчанию при установке системы выбирается 125% увеличение шрифта. При этом ставятся другие растровые шрифты!
Т.е. дальше можно поменять увеличение шрифтов на 100%, или на 150%, но растровые шрифты не меняются.
Вот примеры того, как может не работать программа:
При 100% всё в порядке
При 125% нет возможности выбора директории и файла
При 150% всё опять появляется.
При этом если в системе поставлены растровые шрифты, принятые по умолчанию для 125% увеличения - программа не работает ни при каких параметрах!
Решение описано в статье по ссылке: http://www.rlvision.com/misc/windows_7_font_bug.asp. На всякий случай копипасчу:
As explained on this page with further information here, a "feature" in Windows 7 may cause problems for some programs in certain conditions. Basically, if you have a high resolution screen at install time, Win7 will install a larger font set (125%) by default. If you then choose go back to the standard font size (100%), Windows will keep some of the large fonts even though everything else is adjusted for standard fonts, causing programs that use these fonts to break because the text will not always fit inside the GUI.
By editing the Windows registry you can get the original, intended fonts back:
Возникла проблема: старая программа, написанная, судя по всему, на Delphi, отказалась работать на новом компьютере. Такое бывает довольно часто, но вот на других новых компьютерах, с точно такими же настройками Windows 7 Pro SP1 x64 - она нормально работала! А тут - окошки портятся, контроли не работают, всё какое-то кривое. Программа, хоть и запускается, но совершенно не хочет делать некоторые вещи, например не показывает выподающие меню в некоторых важных местах.
Оказалось, что замечательная компания Microsoft в Win7 применила такой подлый трюк: если экран компьютера маленький, а разрешение - очень высокое, то по умолчанию при установке системы выбирается 125% увеличение шрифта. При этом ставятся другие растровые шрифты!
Т.е. дальше можно поменять увеличение шрифтов на 100%, или на 150%, но растровые шрифты не меняются.
Вот примеры того, как может не работать программа:
При 100% всё в порядке
При 125% нет возможности выбора директории и файла
При 150% всё опять появляется.
При этом если в системе поставлены растровые шрифты, принятые по умолчанию для 125% увеличения - программа не работает ни при каких параметрах!
Решение описано в статье по ссылке: http://www.rlvision.com/misc/windows_7_font_bug.asp. На всякий случай копипасчу:
WINDOWS 7 FONT SIZE BUG
As explained on this page with further information here, a "feature" in Windows 7 may cause problems for some programs in certain conditions. Basically, if you have a high resolution screen at install time, Win7 will install a larger font set (125%) by default. If you then choose go back to the standard font size (100%), Windows will keep some of the large fonts even though everything else is adjusted for standard fonts, causing programs that use these fonts to break because the text will not always fit inside the GUI.
THE SOLUTION
By editing the Windows registry you can get the original, intended fonts back:
- Open the start menu and type
regedit
and then press Enter. - Locate the key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
- Find the value
MS Sans Serif 8,10,12,14,18,24
- Change from
SSERIFF.FON
toSSERIFE.FON
- Find
MS Serif 8,10,12,14,18,24
- Change from
SERIFF.FON
toSERIFE.FON
- Finally find
Courier 10,12,15
- Change from
COURF.FON
toCOURE.FON
- Restart your system in order for the changes to take effect!