Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.024 c
1-1087255908
Dmitry
2004-06-15 03:31
2004.07.04
Необходимо сделать объект прозрачным для событий.


1-1087759289
Dimases
2004-06-20 23:21
2004.07.04
Ищется пример с полностью runеime созданием формы и компонентов!


4-1085384190
mutabor
2004-05-24 11:36
2004.07.04
завершение работы windows


14-1087308451
Piter
2004-06-15 18:07
2004.07.04
Открытие URL в браузере в новом окне


8-1081310641
Студент1
2004-04-07 08:04
2004.07.04
Анимационный файл