![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разрешение экрана и форма
Monah © (2005-11-01 15:42:00)Скажите пожалуйста как сделать чтобы при различных разрешениях экрана программа нормальо выглядела. И как сделать чтобы все кабы сжималось при изменение разиеров
Duralei (2005-11-03 17:30:00) [1]флоппи спасибо щя проверю и еще сразу вопрос а как сделать чтобы наприме при изменение размеров формы? то есть при ресайзе как делать? тчобы иео и другие уменьшались?
msguns (2005-11-03 16:41:00) [2]>Floppy © (03.11.05 16:34) [7]
Ух, лихо ! А как быть с тем, что на "экране" может быть еще панель задач, офисная панель и еще что-нибудь "панельное" ?
А просто использовать якоря, выравнивание и сплиттеры ?
Floppy (2005-11-03 16:34:00) [3]Попробуй так:
procedure TForm1.FormCreate(Sender: TObject);
const
cScreenWidth: integer = 1024;
cScreenHeight: integer = 768;
cPixelsPerInch: integer = 96;
cFontHeight: integer = -11; {В режиме проектирование значение из Font.Height}
begin
if (Screen.width > cScreenWidth) or (Screen.PixelsPerInch <>
cPixelsPerInch) then
begin
Form1.scaled := TRUE;
Form1.height := Form1.height * screen.Height div cScreenHeight;
Form1.width := Form1.width * screen.width div cScreenWidth;
Form1.ScaleBy(screen.width, cScreenWidth);
end;
if (Screen.PixelsPerInch <> cPixelsPerInch) then
begin
for ii := Form1.ControlCount - 1 downto 0 do
TFooClass(Form1.Controls[ii]).Font.Height:=
(Form1.Font.Height div cFontHeight) *
TFooClass(Form2.Controls[ii]).Font.Height;
end;
end;
Возможно поможет
Monah (2005-11-03 14:05:00) [4]ну я делаю 1024 768
при 800 600 у проги появляеться скролбары а при 1280 там вообще свободно еместо
Floppy (2005-11-03 13:33:00) [5]> Monah (01.11.05 15:42)
Прежде всего поясни, что для тебя означает - при различных разрешениях экрана программа нормально выглядела
В чем заключается ненормальность при различных разрешениях? Решения тебе надеюсь подскажут
Sysanin (2005-11-03 12:09:00) [6]Можно попробовать узнать текущее разрешение экрана и уже подгонять по нему как нужно. Текущее разрешение экрана можно узнать с помощью вызова GetSystemMetrics() в качестве параметров передается: SM_CXSCREEN высота рабочей области экрана в пикселах SM_CYSCREEN ширина рабочей области экрана в пикселах SM_CXFULLSCREEN высота всей экранной области в пикселах SM_CYFULLSCREEN ширина всей экранной области в пикселах Ниже приведен пример получения высоты и ширины рабочей области экрана (для всей экранной области надо просто поменять параметры вызова GetSystemMetrics): Var x, y : Integer; Mode:String; begin x:=GetSystemMetrics(Sm_Cxscreen); y:=GetSystemMetrics(Sm_CYscreen); Mode:=Format('%d x %d',[x,y]); If y=480 Then Mode:=Mode+('Standard VGA') Else Mode:=Mode+('Super VGA'); StaticText1.Caption:=Mode;
Nitur (2005-11-02 19:33:00) [7]ArchValentin
ну помоги если знаешь я просто слышал такое
ArchValentin (2005-11-02 01:37:00) [8]
> Nitur (01.11.05 17:45) [1]
мда, мужик, ты конечно помог... :)))
Nitur (2005-11-01 17:45:00) [9]Кажеться есть какойто там проседура масштабирования точно незнаю. может кто знает тоже это интересует