Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Разрешение экрана и форма


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]

Кажеться есть какойто там проседура масштабирования точно незнаю. может кто знает тоже это интересует


Наверх

Титульная страница Поиск, карта сайта Написать письмо