Проблема смещения элементов в программе (28.07.2012). Печать
2012 - Июль
28.07.2012 18:28
Save & Share

Пусть вы написали программу, все элементы детально оттестировали - и программа опубликована. Вы ее потом ещё тестируете некоторое время, пользователи тестируют - тоже, вроде, все нормально. Но вдруг...

Вам пишет дедушка. Серьезно. У меня так и было. Мол, милок, надписи у тебя поехали все. Прилагает скриншот; действительно, надписи едут и видны лишь наполовину. Что же это такое...

Догадался я, что это такое. Пусть вы создали надпись и отредактировали ее длину так, как представлено на рисунке (на примере VB6):

Корректно все? Корректно. Заезжают надписи за границы? Нет. А вот теперь возьмем и в свойствах экрана поменяем следующую опцию:

И понеслась нелегкая. Шрифт увеличился, а пространства для надписи не осталось. Как итог:

С этим бороться можно только одним способом: оставлять запас для текста любого элемента, необязательно radiobutton. В таком режиме в VB6 достаточно удлинения надписи лишь на одну позицию, в CVI то же самое.

Кстати, поставил эксперимент: выставил шрифт 200% и попробовал с удлиненной надписью, вот итог:

Вот это поворот событий! Оказывается, глюк проявляется только при увеличении шрифта к 120 точкам на дюйм. И самое интересное, что этот глюк не только в Windows XP, но и в Windows 7! И то же самое: только при 125% увеличении текста; при 150% все приходит в норму.

Итак, итог статьи: оставляйте одну-2 лишние позиции для текста в элементах форм.

Обновлено ( 28.07.2012 19:01 )