Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Вниз

Размер формы и разрешение экрана   Найти похожие ветки 

 
Солер   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.047 c
14-1086105182
Stalker_23b
2004-06-01 19:53
2004.07.04
Работа для программиста в Питере СРОЧНО!


1-1087714730
Лёха
2004-06-20 10:58
2004.07.04
нахождение файла


14-1087477253
Terminator
2004-06-17 17:00
2004.07.04
Помогите выбрать ресторан и гостиницу


14-1087074079
Федор Б.
2004-06-13 01:01
2004.07.04
ОС с СД


3-1086340730
Draught
2004-06-04 13:18
2004.07.04
QuickReport - отображаются не все строки из Query...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский