Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как устранить "съезд" надписей при использовании 1


Автор: santey 25.6.2007, 19:20
Подскажите, что можно сделать в данном случае.

Когда пользователь использует обычные размеры шрифтов приложение работает нормально,
но как установит 120 dpi и выше, все сразу съезжает.

Может быть какая общая блокировка есть сразу для всех компонентов, чтобы шрифт не менялся
и был обычным размером, а то если для каждого компонента писать код, то накладно получается.

Автор: Klin 25.6.2007, 19:27
Имхо блокировки нет, система сама выбирает марштаб. Хотя кто его знает...


ps. можно сделать обработку на определения марштаба или рисовать текст через Canvas

Автор: mr.Anderson 25.6.2007, 20:58
santey, в идеале все надписи должны быть рисунками (я так последнее время стал делать). Т.е. полностью рисованный интерфейс, отказавшись от всех визуальных контролов, кроме TImage. smile Тогда размер шрифта будет зависеть только от разрешения, что вполне естественно.

Автор: jonie 25.6.2007, 23:12
mr.Anderson аха... у меня 1680*1050 (21` widescreen) - мне умереть?
пересчитывать надо размеры элементов, в зависимости от размеров шрифтов. Делать рисованный картинками шрифт - верх неуважения к пользователям имхо.

Автор: Lazin 26.6.2007, 08:06
Цитата

Может быть какая общая блокировка есть сразу для всех компонентов, чтобы шрифт не менялся
и был обычным размером, а то если для каждого компонента писать код, то накладно получается.

Можно установить фиксированный шрифт у главной формы, а у контролов ParentFont = true. Еще у формы (TForm) есть свойство Scaled если оно равно true контролы подстраиваются под изменение шрифта, если false, то нет.
ЗЫ
имхо использовать  в программе нестандартный шрифт, или полностью нарисованный интерфейс непрофессионально. Юзверь должен иметь возможность настраивать размер шрифта под себя, если у него к примеру хреновое зрение, то он будет большой шрифт использовать.

Автор: Klin 26.6.2007, 10:55
Народ, че вы на человека,  накинулись? Вы что, программ не видели которые работают под определенным разрешением экрана? (я молчу про игры).  
Цитата(jonie @  26.6.2007,  00:12 Найти цитируемый пост)
mr.Anderson аха... у меня 1680*1050 (21` widescreen) - мне умереть?

Есть более гуманные варианты. При создании рисованного интерфейса учитывается, что не только у вас 1680*1050, но и дяди васи 1024*768, поэтому используются разные вариант отображения: измнение размера изображения, использование различных файлов интерфейса и т.п. 


ps. Меню "Vingrad" вверху видим? А кнопки? smile

Автор: mr.Anderson 27.6.2007, 19:46
Klin, спасибо за поддержку. smile

Что такого криминального в разном разрешении? Есть такое понятие, как Stretch у TImage'ов. Перерасчет разрешения можно сделать. Так что это проблема решаема, зато интерфейс такой, какой вы хотите.

Автор: santey 20.12.2012, 11:16
Извиняюсь не в тот раздел написал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)