Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2015, 07:47   #1
AdrianoBoom
Новичок
Джуниор
 
Регистрация: 27.03.2015
Сообщений: 1
Печаль

Я сделал свою программу, но возникла проблема! На моем экране (4:3) программа отображается правильно:

А второй компьютере (родителей) с экраном 16:9 она отображается так:


Еще добавлю, что разрешение моего монитора 1280x1024
А монитора, где отображается не правильно 1920x1080

Как сделать так, чтобы при изменении размера экрана программа не растягивалась?

Последний раз редактировалось Stilet; 27.03.2015 в 10:01.
AdrianoBoom вне форума Ответить с цитированием
Старый 27.03.2015, 13:13   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

1. В ранней стадии создания приложения решите для себя хотите ли вы позволить форме масштабироваться. Преимущество немасштабируемой формы в том, что ничего не меняется во время выполнения. В этом же заключается и недостаток (ваша форма может бать слишком маленькой или слишком большой в некоторых случаях).

2. Если вы не собираетесь делать форму масштабируемой, установите св-во Scaled=False и дальше не читайте. В противном случае Scaled=True.

3. Установите AutoScroll=False. AutoScroll = True означает не менять размер окна формы при выполнении что не очень хорошо выглядит, когда содержимое формы размер меняет.

4. Установите фонты в форме на TrueType фонты, например Arial. Если такого фонта не окажется на пользовательском компьютере, то Windows выберет альтернативный фонт из того же семейства. Этот фонт может не совпадать по размеру, что вызовет проблемы.

5. Установите св-во Position в любое значение, отличное от poDesigned. poDesigned оставляет форму там, где она была во время дизайна, и, например, при разрешении 1280x1024 форма окажется в левом верхнем углу и совершенно за экраном при 640x480.

6. Оставляйте по-крайней мере 4 точки между компонентами, чтобы при смене положения границы на одну позицию компоненты не "наезжали" друг на друга. Для однострочных меток (TLabel) с выравниванием alLeft или alRight установите AutoSize=True. Иначе AutoSize=False.

7. Убедитесь, что достаточно пустого места у TLabel для изменения ширины фонта - 25\% пустого места многовато, зато безопасно. При AutoSize=False Убедитесь, что ширина метки правильная, при AutoSize=True убедитесь, что есть ссвободное место для роста метки.

8. Для многострочных меток (word-wrapped labels), оставьте хотя бы одну пустую строку снизу.

9. Будьте осторожны при открытии проекта в среде Delphi при разных разрешениях. Свойство PixelsPerInch меняется при открытии формы. Лучше тестировать приложения при разных разрешениях, запуская готовый скомпилированный проект, а редактировать его при одном разрешении. Иначе это вызовет проблемы с размерами.

10. Не изменяйте свойство PixelsPerInch !

11. В общем, нет необходимости тестировать приложение для каждого разрешения в отдельности, но стоит проверить его на 640x480 с маленькими и большими фонтами и на более высоком разрешении перед продажей.

12. Уделите пристальное внимание принципиально однострочным компонентам типа TDBLookupCombo. Многострочные компоненты всегда показывают только целые строки, а TEdit покажет урезанную снизу строку. Каждый компонент лучше сделать на несколько точек больше.



©Drkb::04528

Автор: Song
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 31.03.2015, 16:37   #3
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Есть такая штука как Screen.Height и Screen.With. Я когда то делал так, перед запуском приложения проверял какое у пользователя разрешение экрана, а потом подгонял положение компонентов программы под него. Тоесь мы имеем 2-3 самых распространенных разрешений, например, 1024х768, 1280х1024. Естественно разрабатываем приложение на самом большом разрешении экрана. Потом проверяем, мол если Screen.With=1024 тогда Edit1.Left:=900, и так далее пока не переместим положение всех елементов формы. Если будут вопросы - в личку, попробую поподробнее обьяснить.
atihiy2010 вне форума Ответить с цитированием
Старый 31.03.2015, 17:47   #4
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

1) У каждого визуального компонента есть такая штука, как якоря (anchors) - они изменяют размер компонента, положение засися от размера формы.

2) Screen - узнать размер раб. стола, рабочей области и тп.

3) Выставлять свое разрешение экрана при запуске программы.

4) самый легкий - запретить изменение размера окна )
uberchel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подогнать сайт под размер экрана Кротяка HTML и CSS 2 16.09.2013 09:19
Как позиционировать изображение под разрешение и размер экрана Budun WordPress и другие CMS 1 05.04.2013 20:04
Масштабирование формы при изменение разрешения экрана Gudzik11 Общие вопросы Delphi 2 06.03.2012 08:31
масштабирование содержимого экрана skilful Общие вопросы Delphi 14 28.01.2011 06:10
Масштабирование изображения под размер таблицы ARCHANG3L HTML и CSS 6 03.02.2009 23:23