Текущий архив: 2004.07.04;
Скачать: CL | DM;
Вниз
Размер формы и разрешение экрана Найти похожие ветки
← →
Солер (2004-06-20 19:08) [0]Здравствуйте!
Помогите начинающему.
Как сделать, чтобы размер формы не изменялся при смене разрешения экрана
← →
YurikGL © (2004-06-20 19:14) [1]form.width:=screen.width*коэффициент
← →
jack128 © (2004-06-20 19:31) [2]уж не знаю, на сколько коректно, но юоле менее работает..
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
i, j: Double;
procedure WmSettingChange(var Message: TMessage); message WM_SETTINGCHANGE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
i := screen.Width / Width;
j := screen.Height / Height;
end;
procedure TForm1.WmSettingChange(var Message: TMessage);
begin
inherited;
Width := Round(screen.Width / i);
Height := Round(screen.Height / j);
end;
← →
default © (2004-06-20 19:35) [3]jack128 © (20.06.04 19:31) [2]
i, j по идее должны быть постоянны...
← →
AlexG © (2004-06-20 19:40) [4]default © (20.06.04 19:35) [3]
Так они ж и будут постоянными. Просто их инициализация тебя смущает?
← →
default © (2004-06-20 19:46) [5]AlexG © (20.06.04 19:40) [4]
именно
← →
Anatoly Podgoretsky © (2004-06-20 19:48) [6]default © (20.06.04 19:35) [3]
Посчитай для 1280*768, 1280*960, 1280*1024
← →
evvcom © (2004-06-20 19:55) [7]Баловство это, IMHO. Если юзер считает, что ему удобно 1600 или 1920 точек по горизонтали видеть, ну и пусть видит твою форму в трех квадратных сантиметрах. Если это мелко, пусть ставит более крупное разрешение, а извращаться-то зачем?
← →
default © (2004-06-20 19:56) [8]Anatoly Podgoretsky © (20.06.04 19:48) [6]
зачем?
вообще [1]
не зря русским коэф-ент написан...
← →
YurikGL © (2004-06-20 20:00) [9]
> default © (20.06.04 19:56) [8]
Я подумал, что русским ему понятней будет :)))). А то, что это не нужно, это я согласен.
← →
default © (2004-06-20 20:09) [10]млин, таки придётся писать следующий бред, а как было лень...
нужно нам, к примеру, чтобы ширина формы была равна трети
ширины экрана(ну не всего экрана разумеется, а только той что подлежит выводу)
писалась прога при разрешении 800*600, ширина формы была
800/3=~267
пользователь запустил прогу при разр-ии 1024*768 и соответственно
при подходе Jack128 требуемое соотношение будет 1024/267=~4,
которое и будет поддерживаться при возможной смене разрешения в ходе
работы приложения, что не соответствует исходному соотношению
← →
jack128 © (2004-06-20 20:19) [11]
> default © (20.06.04 20:09)
ну да, это понятно, только не соответствует исходному вопросу ;-) Позволю себе процитировать:
> Как сделать, чтобы размер формы не изменялся при смене разрешения
> экрана
(под размером подразумевались относительные размеры)
цели, чтобы форма занимала фиксированую часть (например, треть или, там, четверть) не было..
Хотя конечно - кто его, автора, знает... Как всегда в телепатию играем :-))
← →
Anatoly Podgoretsky © (2004-06-20 20:27) [12]Пользователь как раз изменяет разрешение для того, что бы поместилось больше, а не наоборот. уважительным поведением по отношению к пользователю будет позволить ему самому сменить размеры и запомнить его предпочтение.
← →
default © (2004-06-20 21:19) [13]на самом деле телепатия
← →
zep © (2004-06-20 22:29) [14]автор скорей всего хочет спросить кок сделать так чтобы при изменении разрешения форма занимала всегда весь экран.
попробуй так.
implementation
const
ScreenWidth: Integer = 800; {Я разрабатывал свою форму в режиме 800x600.}
ScreenHeight: Integer = 600;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
x, y: LongInt; {Тип Integer не достаточно большой для наших значений.}
begin
form1.scaled := true;
x := getSystemMetrics(SM_CXSCREEN);
y := getSystemMetrics(SM_CYSCREEN);
if (x <> ScreenHeight) or (y <> ScreenWidth) then
begin
form1.height := form1.height * x div ScreenWidth;
form1.width := form1.width * y div ScreenHeight;
end;
if x <> ScreenWidth then
scaleBy(x, ScreenWidth);
end;
← →
Anatoly Podgoretsky © (2004-06-21 08:55) [15]Автору не мешало бы объясниться, даже само понятие размер расплывчатое.
Страницы: 1 вся ветка
Текущий архив: 2004.07.04;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.028 c