Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Внешний вид формы при разных разрешениях [D7]


фтвкун ©   (2006-10-12 19:50:00) 

Такая проблема: нужно сделать так, чтобы все компоненты на форме(Label, edit, stringgrid, кнопки и т.д.) вне зависимости от разрешения экрана находились посередине формы и имели один и тот же размер. Также нужно чтобы в Stringgridе вне зависимости от разрешения колонки были фиксированного размера. Одним словом, нужно, чтобы программа при разных разрешениях смотрелась одинаково красиво.
Как это сделать наиболее простым и удобным способом?
Заранее спасибо.


фтвкун   (2006-10-13 17:03:00) [1]

Спасибо за помощь, буду разбираться!


ASoft   (2006-10-13 05:54:00) [2]

было давно и не правда....честно, не помню уже...
что-то подобное этому...

const
ScreenHeight: LongInt = 800; { в разрешении 800x600}
ScreenWidth: LongInt = 600;

//****в OnCreate:
...
var
x, y: LongInt;
begin
Form1.scaled := true;
x := getSystemMetrics(SM_CXSCREEN);
y := getSystemMetrics(SM_CYSCREEN);
if (x <> ScreenHeight) or (y <> ScreenWidth) then
 begin
 Form1.height := (Form1l.Height * x DIV ScreenHeight)-100; {100, это к примеру. Не помню... вручную что ли подгонял?!}
 Form1..width := (Form1.width * y DIV ScreenWidth)-150;
 scaleBy(x, ScreenHeight);
......
end;


@!!ex   (2006-10-12 20:46:00) [3]


> Ну и сделай чтобы под любым разрешением было красиво - сделай
> "резиновый интерфейс"..

Задача стоит с фиксированным размером и в центре формы.
Резиновый интерфейс(Я, кстати, тоже за него обеими руками) нарушает указанные в [0] законы.


> Конечно проще, но лично меня такие программы беся и сильно(кроме
> тех что должны быть фиксированного размера).

Согласен.


> фтвкун   (12.10.06 20:39) [5]


Покажи скрин своего проекта, скажем чего, как и куда прикреплять.


Kolan   (2006-10-12 20:43:00) [4]

Screen.Width

событие OnResize

А вообще большая часть делается без единой строчки кода. Ancors, Splitter, Align...


фтвкун   (2006-10-12 20:39:00) [5]

Дык вот вопрос в том, как его сделать, этот резиновый интерфейс?
При начале работы программы узнать разрешение экрана и перерисовать все компоненты? А какой функцией можно разрешение узнать?


Kolan   (2006-10-12 20:31:00) [6]


> Дома пишу под одним разрешением - всё красиво, приношу заказчику
> - у него другое разрешение и выглядит фигово :(

Ну и сделай чтобы под любым разрешением было красиво - сделай "резиновый интерфейс"..

> Помоему проще запретить изменение размера формы.

Конечно проще, но лично меня такие программы беся и сильно(кроме тех что должны быть фиксированного размера).


> При уменьшении размеров будет еще хуже, компоненты уедут
> за края формы.

Это да - это просчеты при разработке интерфейса вообще


@!!ex   (2006-10-12 20:17:00) [7]


> фтвкун   (12.10.06 20:06) [2]

Перечитай свой первый пост.
Если менять положение по твоему закону, то при увеличении размеров формы, все компоненты уедут к центру, а по краям будет пустое место - лажа.
При уменьшении размеров будет еще хуже, компоненты уедут за края формы.

Юзай Anchors


фтвкун   (2006-10-12 20:06:00) [8]

у меня приложени состоит из нескольких форм, каждая из которых во весь экран (align=alclient)
Дома пишу под одним разрешением - всё красиво, приношу заказчику - у него другое разрешение и выглядит фигово :(


@!!ex   (2006-10-12 20:03:00) [9]


> Такая проблема: нужно сделать так, чтобы все компоненты
> на форме(Label, edit, stringgrid, кнопки и т.д.) вне зависимости
> от разрешения экрана находились посередине формы и имели
> один и тот же размер.

ТОварищ, вы сами то это представляете?
Помоему проще запретить изменение размера формы.


Наверх

Титульная страница Поиск, карта сайта Написать письмо