Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
ВнизВозможно ли при работе программы изменить ее интерфейс Найти похожие ветки
← →
Vitaliygavrilov (2003-12-17 10:55) [0]Здравствуйте!
Скажите пожалуйста возможно ли изменение программы ее интерфейса с разрешения 1024х800 на 800х640. Причем при ее работе.
Заранее спасибо Гаврилов В.А.
← →
alex_*** (2003-12-17 11:02) [1]Как понять изменить интерфейс? Размеры формы и расположение контролов?
← →
TUser (2003-12-17 11:04) [2]Почему бы и нет. Переделываешь Top, Left, Width и Height для всех визуальных компонентов.
← →
Babay (2003-12-17 11:04) [3]Да..
Правильные алигны для элементов
и свойства форм width, Height ну возможно еще Left, Top.
Прога следит за разрешением экрана и перестраивает размеры форм при необходимости.
← →
Babay (2003-12-17 11:05) [4]:=)))# ГЫ-ГЫ !! всем.
← →
alex_*** (2003-12-17 11:06) [5]гемора много.. легче зашиться на 800х600 и горя не знать
← →
Alex_K (2003-12-17 12:05) [6]вот такой модуль - писал не я - нашёл в инете
после создания формы (в конце NewFormCreate) выполнить
ScaleForm(NewForm)
ну естественно правильно расставить свойства компонентов на форме
Scaled в True, FullRepaint в True
unit scale;
interface
uses
Forms, WinTypes, WinProcs, SysUtils;
procedure ScaleForm(Sender: TObject);
implementation
procedure ScaleForm(Sender: TObject);
const
{измените это так, чтобы это соответствовало режиму разрешения во время разработки}
DesignScrY: LongInt = 768;
DesignScrX: LongInt = 1024;
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 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c