Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.09;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
2-1222673215
<Evil>
2008-09-29 11:26
2008.11.09
Как экранировать одинарную кавычку?


15-1221297971
@!!ex
2008-09-13 13:26
2008.11.09
День программиста - Набор стереотипов


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


15-1221473784
wayfarer
2008-09-15 14:16
2008.11.09
почему в mainmenu delphi for php 2.0 не выводятся русские символы


15-1221574229
Гомер
2008-09-16 18:10
2008.11.09
Где можно скачать много примеров Delphi программ?