Главная страница
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.018 c
8-46862
xn0bys
2003-01-30 13:49
2003.05.15
Мигание Image м


3-46628
lightix
2003-04-22 15:06
2003.05.15
Как сделать НЕбазовые поля в Query?


6-46876
chum
2003-03-15 16:49
2003.05.15
Опять про PROXY


3-46662
Анна
2003-04-24 21:22
2003.05.15
Ссылочная целостность


7-47019
Серж.
2003-03-19 22:29
2003.05.15
Как программно запретить доступ к каталогу?