![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Внешний вид формы при разных разрешениях [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, кнопки и т.д.) вне зависимости
> от разрешения экрана находились посередине формы и имели
> один и тот же размер.
ТОварищ, вы сами то это представляете?
Помоему проще запретить изменение размера формы.