![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Alex_Alexin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 15.9.2006 Репутация: нет Всего: нет |
Интерфейс формы прописан под 800x600. Как грамотно прописать масштабирование расположения компонентов формы и их размеров для различных графических разрешений монитора?
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
| jaAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 31.5.2006 Где: Краснодар Репутация: нет Всего: нет |
Вот как - то так. |
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
На самом деле, вопрос не такой очевидный, и не имеет однозначного решения. По хорошему вместе с размерами контролов необходимо менять еще и размер шрифта, иначе при переходе, на большие разрешения он становится мелким. Шрифт также имеет ограничения по уменьшению, после которого он становится не плохо читабельным. Потому как мне кажется, самое надежное привязываться именно к размеру шрифта. А то ведь представьте уменьшите вы размер контрола не изменив размер шрифта, тогда есть все шансы обрезать текст не поместившийся в этой строке. Возможна и другая ситуация, когда не специфические контролы не поддаются масштабированию или эта операция для них не желательна, например скролбары. Масштабирование формы имеет свои ограничения, так что желательно при проектировании изначально форма не занимала весь экран, т.е. чтобы она не обрезалась при меньших разрешениях.
Я делал так при создании формы заносил параметры всех контролов MemoryStream.
А после при изменении разрешения или если оно просто отличалось от исходного пересчитывал их каждый раз сначала шрифт, который уже не может меняться при разрешении меньше 800х600 и кроме того меняется очень грубо. А уже после этого пересчитывал масштабный параметр. Таким образом текст всегда будет одинаково помещаться на контролах при любом разрешении экрана.
Данный метод имеет тот недостаток, что не позволяет удалять компоненты. Это можно исправить если вносить в поток еще и их имена. Если контролы будут создаваться во время работы, то их прийдется предварительно туда же в поток прописывать или после создания или до создания. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |