Главная страница
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.013 c
1-46802
stasssw
2003-05-02 12:41
2003.05.15
ВЫЗОв программы архиватора из DELPHI.


1-46808
Semen
2003-05-02 16:54
2003.05.15
Сравнить два списка. Как?


3-46579
Arkady
2003-04-23 10:49
2003.05.15
TDBNavigator


14-46956
VEG
2003-04-26 18:58
2003.05.15
Морковка едет на учебе и игнорирует!


14-46946
Anatoly Podgoretsky
2003-04-25 17:57
2003.05.15
Auto Complite В ыеб формах