Форум: "Начинающим";
Текущий архив: 2007.03.04;
Скачать: [xml.tar.bz2];
ВнизСмена разрешения Экрана! Найти похожие ветки
← →
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. определяешь
> разрешение экрана. потом для каждой кнопки пусть читаются
> из файла ее параметры(положение, шрифт…).
а подробней плиз…»
Успокойтесь, надо сделать «резиновый» интерфейс. Для этого нужно: Align, Anchors, TSeparator…
← →
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;
Запускаешь — растягиваешь форму радуешься…
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.048 c