Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.15;
Скачать: CL | DM;

Вниз

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

 
AlexGof ©   (2003-05-05 10:51) [0]

Доброго дня вам ! Вопрос такой, написал приложение под 800Х600 теперь у одного из юзеров экран 640Х480 только поддерживает, надо переделывать под него. Приложение многооконное, т. е. главная и MDIChild формы, на формах свойство WindowState=wsMaximized стоит, они сами под 640Х480 размером становятся, а вот компоненты смещаются естественно. Решил их масштабировать на 20%. Делаю это так
for i:=1 to Form.ControlCount-1 do
begin
if (Form.Controls[i] is TWinControl) then
(Form.Controls[i] as TWinControl).ScaleBy(8,10);
end;
Но запускаю приложение в режиме 640Х480 и ничего не происходит, они не уменьшаются как написано в книжке, ни кнопки, ни таблицы, вообще ничего. Может я что не так делаю, кто занимался проблемами работы с разными экранами подскажите, как это делается. Заранее благодарен....


 
ghg ©   (2003-05-05 11:22) [1]

определяешь разрешение экрана.
потом для этого разрешения меняешь размер формы при ее создании и все.
должно работать

procedure TForm2.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
ScaleControls(newwidth,width);
end;


 
AlexGof ©   (2003-05-05 11:43) [2]

Так ?
ScaleControls(NewWidth,Screen.Width);
ScaleControls(NewHeight,Screen.Height);
И только для главной пойдет или для MDIChild форм тоже самое делать 7


 
ghg ©   (2003-05-05 11:48) [3]

>ScaleControls(NewWidth,Screen.Width);
>ScaleControls(NewHeight,Screen.Height);
>И только для главной пойдет или для MDIChild форм тоже самое делать 7

немного не так.
надо только
ScaleControls(NewHeight,Screen.Height);
и все
прадва я писал Form.Height


для MDI форм не знаю, но если обычные то надо делать для каждой в отдельности


 
ASMiD ©   (2003-05-05 12:00) [4]

640Х480 это круто - давно с таким не сталкивался.
Самый дубовый метод - в OnCreate
определяешь разрешение экрана c помощью API-функции GetDeviceCaps и, перебирая все компоненты, устанавливаеш их положение и размеры (Left, Right, High, Width) все это можно сделать одной API-функцией SetWindowPos



 
AlexGof ©   (2003-05-05 12:02) [5]

Почему как то не так работает, ToolBar закрылись на половину, таблицы и pagecontrols в дочерних формах вобще не отображаются и с ними не пойму что произошло, может, ты что то перепутал ? Или я как то не так делаю ?


 
ASMiD ©   (2003-05-05 12:05) [6]

Это ты кому ответил?


 
ghg ©   (2003-05-05 12:15) [7]

что значит закрылись наполовину?


 
ghg ©   (2003-05-05 12:22) [8]

кстати был у меня прецедент, когда приложение написанное на разрешении 800*600 нормально отображалось при разрешении 1024*...
то есть отношение десктопа к размеру форм былдо то какое надо.
Как это объяснить? (правда это было на tft-мониторе)



Страницы: 1 вся ветка

Текущий архив: 2003.05.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-46724
OOOoo
2003-04-29 08:39
2003.05.15
Закрытие exe из dll


3-46572
_Narayan_
2003-04-25 09:55
2003.05.15
Многострочный запрос


1-46777
tytus
2003-05-01 17:46
2003.05.15
caption


1-46822
NP-237
2003-04-30 15:49
2003.05.15
D2 и DWORD


3-46658
_Narayan_
2003-04-24 17:04
2003.05.15
Хранимая процедура....