![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Freeman94 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.6.2013 Репутация: нет Всего: нет |
Доброго времени суток уважаемые форумчане! В программировании недавно, но при всём при этом я разработал программку в Delphi 2009 на своем компьютере под разрешением экрана 1366х768. В программе использовал следующие компоненты: Panel, Image, Label, ScrollBox, DBGrid и т.д. При запуске, программа автоматически раскрывается на полный экран(WindowState=wsMaximized, BorderStyle=None). У меня на компе все работает(отображается) нормально, а на нетбуке с разрешением экрана 1024x600 некоторые компоненты не влазают на экран. Хотелось бы иметь в своем арсенале универсальную программу, которая бы нормально отображалась в любом разрешении экрана. Прогуглив инет, я пришел к такому выводу, что лучше всего использовать свойства компонентов Align + AlignWithMargins + Margins. Теперь собственно и вопрос: Каким образом мне расчитать новые координаты расположений компонентов Left, Right, Top, Bottom свойства Margins, если разрешение экрана будет отличное от 1366х768. Если есть какая нибудь формула расчета, то пожалуйста поделитесь ею! или же помогите её составить. Заранее спасибо!
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Используй align + anchors.
У всех визуальных компонент есть эти свойства. |
|||
|
||||
| northener |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Это фантастика, причем ненаучная.
Нужно заранее решить какие минимальные высота и ширина допустимы для более-менее нормального вида окна программы. И уже от этого плясать. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
||||
|
|||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
| Freeman94 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.6.2013 Репутация: нет Всего: нет |
Во вложенных файлах есть рисунок. Там, где белое - это распаложение панелей. Ширина рисунока = 1366 пикселей, высота = 768 пикселей. Как я буду использовать свойства align=alclient,allfet,alright,altop,albotom для панелей, если у меня панели располагаются по следующим координатам: Left=224 пикселей, Top = 110 пикселей, Width = 916 пикселей, Height = 369 пикселей. На самих панелях присутствуют компоненты. Для основного Имейджа(в прикрепленных файлах) поставил свойство Align=alClient, Stretch=true. С основным имейджом проблем нет, хоть какое бы разрешение не ставил, он автоматически подгоняется под разрешение экрана, а вот с панелями и другими компонентами куча проблем. Присоединённый файл ( Кол-во скачиваний: 14 )
1.jpg 95,13 Kb |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Так это ж надо DevExpress качать и ставить. А если понравится, так ещё и покупать. Да и не уверен я, что мороки с универсальным дизайном под все разрешения плюс под все DPI не будет. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| ZBugz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 636 Регистрация: 15.2.2006 Где: Москва Репутация: 6 Всего: 6 |
А я всегда в основнойм align тока юзаю. Теже label ставлю в панели, скрываю бордеры, ну и выравниваю как надо. Геморно конечно на этапе проектирования, зато на 800 на 600 даже работает
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Ну ты уж определись с тем, что тебе нужно. Фиксированный размер или резиновый дизайн? |
|||
|
||||
| Freeman94 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.6.2013 Репутация: нет Всего: нет |
Резиновый дизайн мне нужен, чтобы при любых разрешениях программа нормально отображалась, чтобы компоненты вмещались на форму при любых разрешениях экрана |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
240x320 тоже? Задача общего решения не имеет, как сказал northener. Есть несколько путей, один включает в себя определение минимального размера формы, а дальше align + anchors. НО, когда разрешение становится низким, то прибегают к такому понятию как адаптивность (в вэб по крайне мере), в таком случае при уменьшении размера меняется ДИЗАЙН приложения, т.к. если там очень много контролов видно, это становится неудобно. Тут уже на помощь выпадающие меню (не popupmenu) и подобные вещи могут помочь. Добавлено через 56 секунд Да, и зачастую этот процесс упрощается при использовании сторонних контролов. -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Готового стандартного инструмента для таких действий в Дельфи нет. Есть только его отдельные составляющие (Anchors, Alignes, Margins etc.) Так что придётся изрядно потрудиться чтобы сей универсальный инструмент сделать. Советую всё же упростить задачу, т.е. сделать дизайн формы при стандартном для нетбуков разрешении (1024x600), а при этом подумать какие контролы и как должно будут увеличиться при увеличении разрешения экрана. Так чтобы форма не казалась пустой, а многострочные контролы (если таковые есть) занимали максимально больше места. P.S. Сам так делал ибо наши спецы из техотдела предпочитают ездить на объекты с нетбуками. P.P.S. При разработке дизайна программы надо помнить не только о разрешении экрана, но и о установленном в системе DPI. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Akella |
|
||||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
При любых? И при 128*128? Добавлено через 42 секунды И что такое нормально? Я считаю, что ненормально когда строка ввода на всю ширину экрана слева на право растянута %) Добавлено через 4 минуты и 39 секунд
Нужно подумать над тем, какие элементы того списка компонент должны растягиваться, а какие нет. ScrollBox может вообще выкинуть? Например, панель. Для чего она? Что на ней будет. Ты бы хоть накидал на форму компонент и сделала бы снимок. А то непонятно, чего тебе надобно. Добавлено через 8 минут и 46 секунд Вот тебе несколько снимков резиновой формы ![]() ![]() ![]() вот сама форма: http://rghost.ru/private/46844642/e54ec882...629a197aadb062e (для D2007) |
||||||||
|
|||||||||
![]()
|
| Правила форума "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. |