Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Форма во весь экран 2

Delphi , Программа и Интерфейс , Размеры и Положение

Форма во весь экран 2


procedure TForm1.FormShow(Sender: TObject);
var
  r : TRect;
begin
  SystemParametersInfo(SPI_GETWORKAREA, 0, @r,0);
  Form1.SetBounds(r.left, r.top, r.Right - r.left, r.bottom - r.top);
end;

Here's a translation of the text into Russian:

Код на Delphi, который пытается заполнить форму всей экранной площадки при ее отображении. Вот разбивка кода:

  1. Событие FormShow вызывается при первом отображении формы.
  2. Функция SystemParametersInfo используется для получения рабочей зоны десктопа, исключая панели задач, меню и другие не-клиентские области. Параметр SPI_GETWORKAREA указывает, что мы хотим получить информацию о рабочей зоне.
  3. Синтаксис @r используется для передачи ссылки на переменную типа TRect r в качестве аргумента функции SystemParametersInfo. Это позволяет получать информацию о рабочей зоне в переменной r.
  4. Метод SetBounds формы используется для установки границ формы (то есть ее положения и размера) на основе значений, хранящихся в переменной r. Специально левая, верхняя, правая и нижняя координаты формы устанавливаются в соответствующие координаты прямоугольника рабочей зоны.

Однако в этом коде есть несколько проблем:

  • Form1 в Form1.SetBounds не является необходимым, потому что метод SetBounds является экземплярным методом класса TForm, и он может быть вызван напрямую на объекте формы.
  • Синтаксис @r не является необходимым, потому что функция SystemParametersInfo принимает указатель на переменную типа TRect в качестве последнего аргумента.

Вот улучшенная версия кода:

procedure TForm1.FormShow(Sender: TObject);
var
  r: TRect;
begin
  SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);
  SetBounds(r.left, r.top, r.Right - r.left, r.bottom - r.top);
end;

Альтернативно можно использовать свойства ClientWidth и ClientHeight, чтобы установить размер формы в соответствии с рабочей зоной:

procedure TForm1.FormShow(Sender: TObject);
begin
  SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);
  SetBounds(0, 0, r.Right - r.left, r.bottom - r.top);
end;

Эта подход более прост и элегантен, чем использовать метод SetBounds с явными координатами.

В статье описывается процедура TForm1.FormShow, которая изменяет размер формы на весь экран по умолчанию, используя функцию SystemParametersInfo для получения области рабочего стола.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Размеры и Положение ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:08:19/0.0051569938659668/1