Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.04;
Скачать: CL | DM;

Вниз

Смена разрешения Экрана!   Найти похожие ветки 

 
Golikov ©   (2007-02-10 17:32) [0]

Здрасте! подскажите кто знает!
если я запускаю свою програму при разрешении экрана 1280*1024(при котором програма создавалась) усе нармуль,а если меняю например на 1024*768 то формочки то остаются такими как при разрешении 1280*1024 (т.е. большие получаются на весь экран).
какое свойство надо изменять у формы при смене разрешения?
а если на форме 10,20,..........N- объектов ? неужели надо будет менять каждый объект ?
ткните Носом!


 
Desdechado ©   (2007-02-10 17:35) [1]

> какое свойство надо изменять у формы при смене разрешения?
А что тебе надобно, старче?


 
golikov ©   (2007-02-10 17:38) [2]

чтоб форма и все компоненты на форме подстраивались по текущее разрешение!
как это реализовывается ?


 
golikov ©   (2007-02-10 18:00) [3]

????????????????


 
Desdechado ©   (2007-02-10 18:01) [4]

Т.е. кнопки увеличивались в размерах сами?
А если контрол неможет быть отмасштабирован?
А шрифтам куда деваться?


 
golikov ©   (2007-02-10 18:04) [5]

и какой тогда выход ?


 
vasIZmax ©   (2007-02-10 18:14) [6]


> golikov ©   (10.02.07 18:04) [5]

1. сделай форму 800*600 и фиксани размеры.
2. определяешь разрешение экрана. потом для каждой кнопки пусть читаются из файла ее параметры(положение, шрифт...).


 
golikov ©   (2007-02-10 18:21) [7]


> 1. сделай форму 800*600 и фиксани размеры.2. определяешь
> разрешение экрана. потом для каждой кнопки пусть читаются
> из файла ее параметры(положение, шрифт...).

а подробней плиз..............


 
Kolan ©   (2007-02-10 18:31) [8]

«[7] golikov ©   (10.02.07 18:21)

> 1. сделай форму 800*600 и фиксани размеры.2. определяешь

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

> из файла ее параметры(положение, шрифт&#133).

а подробней плиз&#133»


Успокойтесь, надо сделать «резиновый» интерфейс. Для этого нужно: Align, Anchors, TSeparator&#133


 
Kolan ©   (2007-02-10 18:32) [9]

Делается за 10 минут.


 
vasIZmax ©   (2007-02-10 18:34) [10]

по 1.
разрабатывай форму при разрешении 800*600. а потом бордерстайл=нон.
или как вариант с самого начала зафиксируй форму, и работай.
по 2. много писанины.
> надо будет менять каждый объект
. и записывай их в какой-нить файл. а потом в зависимости от определенного разрешения применяешь необходимые параметры для каждого объекта.
ЗЫ. но это чисто предположения начинающего. по поводу 2-го - я проект себе так делал. Заморочно, но выход.:)


 
golikov ©   (2007-02-10 18:35) [11]

Kolan
ну приведи пример!.


 
vasIZmax ©   (2007-02-10 18:39) [12]


> Kolan ©   (10.02.07 18:32) [9]

согласен. точнее не исключено.
но для этого надо ж знать

> Kolan ©   (10.02.07 18:31) [8]
> Align, Anchors, TSeparator…


ЗЫ. :)


 
Kolan ©   (2007-02-10 18:49) [13]

«ну приведи пример!.»

Пример:
Допустим у тебя есть форма а на ней РичЭдит.
Ты хочешь чтобы он был в верхней части формы и при растягивании растягивался по ширине вместе с формой. А по высоте остался такимже.

Значит выставляешь у рич Эдита св-ва Anchors: Left, Top, Right — True, Bottom — False;
Запускаешь — растягиваешь форму радуешься&#133


 
Kolan ©   (2007-02-10 18:51) [14]

Лично я при разработке обычно делаю доваольно маленькую форму, тк её удобно редактировать(Все видно). А так как она «резиновая» то какой разрешение у пользователя ессно все равно.


 
iXT ©   (2007-02-11 11:50) [15]


> Смена разрешения Экрана!

ИМХО
Это пользовательское право. Его трогать низя. А таких кто трогает, надо расстреливать.


> golikov ©   (10.02.07 18:35) [11]
> Kolan
> ну приведи пример!.

Ну какой пример? Возьми, набросай на форму всякой всячины, и поиграйся с вышеупомянутыми свойствами.


 
Alexdeil   (2007-02-11 16:35) [16]

Посмотрите этот модуль (Автор: Andrey Kozlov )

unit scale;
{Дополнение

Модуль, масштабирующий компоненты вне зависимости от разрешения экрана и ширины границ окон. Включите нижеследующий модуль в секцию uses каждого модуля и вызывайте ScaleForm в обработчике формы OnCreate, передавая в качестве параметра имя формы. Я надеюсь что помог тем, кто столкнулся с данной проблемой.
}

interface

uses
 Forms, WinTypes, WinProcs, SysUtils;

procedure ScaleForm(Sender: TObject);

implementation

procedure ScaleForm(Sender: TObject);

const

 {измените это так, чтобы это соответствовало
 режиму разрешения во время разработки - я разрабатывал мою форму в режиме 800x600.}

 DesignScrY: LongInt = 600;//480;
 DesignScrX: LongInt = 800;//640;
 DesignBorder: LongInt = 4; {значение в Панели Управления + 1}

var

 SystemScrY: LongInt;
 SystemScrX: LongInt;
 SystemBorder: LongInt;
 OldHeight: LongInt;
 OldWidth: LongInt;

begin

 SystemScrY := GetSystemMetrics(SM_CYSCREEN);
 SystemScrX := GetSystemMetrics(SM_CXSCREEN);
 SystemBorder := GetSystemMetrics(SM_CYFRAME);
 with Sender as TForm do
 begin
   Scaled := True;
   AutoScroll := False;
   Top := Top * SystemScrX div DesignScrX;
   Left := Left * SystemScrX div DesignScrX;
   OldHeight := Height + (DesignBorder - SystemBorder) * 2;
   OldWidth := Width + (DesignBorder - SystemBorder) * 2;
   ScaleBy((OldWidth * SystemScrX div DesignScrX - SystemBorder * 2),
     (OldWidth - DesignBorder * 2));
   {
   Для форм не имеющих границ измените предшествующие
   три строки следующим способом:

   OldHeight := Height;
   OldWidth  := Width;
   ScaleBy(SystemScrX, DesignScrX);
   }

   Height := OldHeight * SystemScrY div DesignScrY;
   Width := OldWidth * SystemScrX div DesignScrX;
 end;
end;

begin
end.



Страницы: 1 вся ветка

Текущий архив: 2007.03.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.043 c
15-1170642121
Expell
2007-02-05 05:22
2007.03.04
Корреляция


15-1170756401
цимус
2007-02-06 13:06
2007.03.04
dvd-rom


15-1170409128
Vlad Oshin
2007-02-02 12:38
2007.03.04
Чем бы промониторить mySql, так же как Profiler мониторит MSSQL?


2-1171544311
vdmm
2007-02-15 15:58
2007.03.04
Программно создать таблицу в RichEdit


15-1171261515
zdm
2007-02-12 09:25
2007.03.04
Vista(Aero) and BDS2006