Форум: "Основная";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];
ВнизРабота приложения с разным разрешением экрана Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c