![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Люди, дайте совет плиз :
Программа написанна на дельфи 7, при изменении режима экрана у программы сьезжают окна, кнопки и другие компоненты размещенные на форме, как оптимизировать окна программы под разные разрешения экрана, сворачивания программы или при изменении размера окна? |
|
|
|
|
| Реклама: | сколько делают коронку | заказ шаров в краснодаре | Сушильная машина Bosch WQG232ALSN | руки вверх со скольки лет можно на концерт - redkassa.ru | d-link dgs-1100-08v2 |
|
|
#3
|
|
Сейчас минимальное разрешение экрана по моему у всех не ниже 800х600 - вот из этого и исходи - поставь в свойствах формы MinWidch и MinHeight чуть меньше - 700х500 и разверни на весь экран (свойство формы Align := alClient), якорями (Anchors) привяжи элементы к форме при минимальном размере. Можно попробовать использовать компонент JvFormAutoSize и комплекта JVCL. Можно несколько элементов положить на панель и контролировать её положение.
__________________
У победы много отцов, поражение всегда сирота. Последний раз редактировалось hack; 17.09.2007 в 16:12.. |
|
|
|
|
|
|
#4
|
|
Пользуйся
Код:
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.
__________________
Дружно давим на кнопу СПАСИБО |
|
|
|
|
|
|
#5
|
|
По-моему здесь речь идет про свойсто Anchors. Оно задает привязки элементов.
|
|
|
|
|
|
|
#6
|
|
Неактивный пользователь
Пол:
Регистрация: 07.01.2008
Сообщений: 3
Репутация: 3
|
|
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Оптимизация программы | Zen2004 | Borland C++ Builder | 9 | 19.11.2008 18:42 |
| Оптимизация алгоритма | pluton | Visual C++ / С/C++ | 6 | 18.07.2008 13:37 |
| помогите программисты си под линукс запуск программы или скрипта из программы | CWTAE | Visual C++ / С/C++ | 2 | 17.01.2008 02:29 |
| Оптимизация графики для веб | kalancha | Вeб Дизайн | 12 | 06.04.2007 06:55 |
|
|