Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   Delphi (https://nowa.cc/forumdisplay.php?f=300)
-   -   Оптимизация окна программы (https://nowa.cc/showthread.php?t=118564)

mauar 03.09.2007 19:05

Оптимизация окна программы
 
Люди, дайте совет плиз :
Программа написанна на дельфи 7, при изменении режима экрана у программы сьезжают окна, кнопки и другие компоненты размещенные на форме, как оптимизировать окна программы под разные разрешения экрана, сворачивания программы или при изменении размера окна?

MSeryoga 15.09.2007 20:16

Ответ: Оптимизация окна программы
 
Тут был похожий вопрос

hack 17.09.2007 14:28

Ответ: Оптимизация окна программы
 
Сейчас минимальное разрешение экрана по моему у всех не ниже 800х600 - вот из этого и исходи - поставь в свойствах формы MinWidch и MinHeight чуть меньше - 700х500 и разверни на весь экран (свойство формы Align := alClient), якорями (Anchors) привяжи элементы к форме при минимальном размере. Можно попробовать использовать компонент JvFormAutoSize и комплекта JVCL. Можно несколько элементов положить на панель и контролировать её положение.

tFeniks 24.10.2007 06:47

Ответ: Оптимизация окна программы
 
Пользуйся

Код:

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.


neonman 15.12.2007 19:49

Ответ: Оптимизация окна программы
 
По-моему здесь речь идет про свойсто Anchors. Оно задает привязки элементов.

Санек_Булдыг 09.01.2008 01:18

Ответ: Оптимизация окна программы
 
Цитата:

Сообщение от neonman (Сообщение 1313660)
По-моему здесь речь идет про свойсто Anchors. Оно задает привязки элементов.

Согласен эта проблема проще всего так и решается.


Текущее время: 18:39. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2025 NoWa.cc

Время генерации страницы 0.02988 секунды с 9 запросами