Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];

Вниз

Как задать "масштаб" формы, учитывающий разрешение экрана?   Найти похожие ветки 

 
abhtr   (2008-10-01 10:26) [0]

Создаю форму, задаю положение и размеры компонент...
Но, когда меняется разрешение экрана (что бывает у заказчика), то представление на экране формы ломается.
Подскажите, как можно задавать "масштаб" или другую величину, чтобы заданные программно размеры и положение на форме оставались неизменными не зависимо от разрешения экрана?
Пробовал так: dbgPeriodical.Height:= frmPeriodical.Height - round(screen.Height/9.4);
но коэффициент 9.4 все равно точно не отрабатывает.


 
Плохиш ©   (2008-10-01 10:39) [1]

Scaled + F1


 
oldman ©   (2008-10-01 10:42) [2]

Всегда работать с формой 800х600
Меньше разрешение вряд ли поставят, а больше по фигу...


 
Григорьев Антон ©   (2008-10-01 11:13) [3]

Это не от размера экрана зависит, а от величины системного шрифта. А Delphi, если видит, что размер шрифта при разработке не совпадает с размером при запуске, начинает масштабировать форму. Отключается это свойством Scaled, так что см. [1]


 
oldman ©   (2008-10-01 12:01) [4]


> Создаю форму, задаю положение и размеры компонент...
> Но, когда меняется разрешение экрана (что бывает у заказчика),
>  то представление на экране формы ломается.


НЕ ВЕРЮ!!!


 
AlexDan ©   (2008-10-01 16:27) [5]

> oldman ©   (01.10.08 12:01) [4]
Да, так и есть, я тоже с этим недавно столкнулся..


 
MsGuns ©   (2008-10-01 16:48) [6]

В чем состоит "ломание" ? Если искажаются пропорции контролов и особенно шрифтов, то см.3
Если куски формы вылазят за экран, то следует при проектировании интерфейса использовать выравнивание, а для тех контролов, у которых оно отсутствует (эдит или кнопка например),  делать выравнивание пересчетом их "географии" в обработчиках резайза их контейнеров. Ну и 2 конечно.


 
abhtr   (2008-10-01 17:41) [7]

О проблеме по подробнее.
Вместо создания нескольких однотипных форм создаю одну, в которой, в зависимости от условий, меняется "география" компонент: расположение TLabel, TEdit, а также положение и размер DBGrid-a. Все это меняется при вызове формы, в зависимости от условий. Для отработки изменения размеров формы отрабатываю FormCanResize, в котором есть строки типа dbgPrHsInit.Top :=frmPeriodical.Height - 284;
И все работало замечательно, пока не менялась разрешение экрана.
При смене разрешение, константа (284), тоже должна меняться.
Чтобы не делать набор констант для каждого разрешения пыталься найти "универсальный" коэфициент вычисляемый от разрешения экрана.
Попробовал dbgPeriodical.Top := frmPeriodical.Height - round(screen.Height/1.205);
Не получилось.
Вот и весь вопрос. Как найти такой "коэффициент" или что-то аналогичное?
Или вообще такой подход не правильный?


 
Petr   (2008-10-01 17:51) [8]

К > Плохиш ©   (01.10.08 10:39) [1]
> Scaled + F1

можно лишь добавить ScaleBy, и для разрешений мониторов больших, чем компилировалось в design проблема решается.


 
{RASkov} ©   (2008-10-01 18:15) [9]

> [7] abhtr   (01.10.08 17:41)

Запомни стартовую ширину/высоту формы, а после коэффициент расчитывай так СтартШирина/ТекШирина.... тоже самое для высоты... Расчитывать можно на ресайз формы...
Могу пример накидать...



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
15-1221414038
@!!ex
2008-09-14 21:40
2008.11.09
Какой функции не хватает?


2-1222879419
lamer6666
2008-10-01 20:43
2008.11.09
Как на время выполнения SQL запроса Query изменить вид курсора


9-1174248094
Mr.Vlad
2007-03-18 23:01
2008.11.09
TImage под разными углами


2-1222876480
GrieVeR-13
2008-10-01 19:54
2008.11.09
Эмуляция клика мыши в не активном окне.


2-1222873726
Толик
2008-10-01 19:08
2008.11.09
Сохранение настроек в ini файл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский