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

Как развернуть форму на весь экран, как в играх

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

Как развернуть форму на весь экран, как в играх


interface

uses
 Windows, Messages, SysUtils, Classes, Controls,
Forms,
 StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
procedure WMGetMinMaxInfo(var msg: TWMGetMinMaxInfo);
message WM_GETMINMAXINFO;

 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.WMGetMinMaxInfo(var msg:
TWMGetMinMaxInfo);
begin
 inherited;
 with msg.MinMaxInfo^.ptMaxTrackSize do begin
   X := GetDeviceCaps( Canvas.handle, HORZRES ) +
(Width - ClientWidth);
   Y := GetDeviceCaps( Canvas.handle, VERTRES ) +
(Height - ClientHeight );
 end;

end;

procedure TForm1.Button1Click(Sender: TObject);
const
Rect: TRect = (Left: 0; Top: 0; Right: 0; Bottom: 0);
FullScreen: Boolean = False;
// Разворачиваем на весь экран
begin
FullScreen := not FullScreen;
if FullScreen then begin
Rect := BoundsRect;
SetBounds( Left - ClientOrigin.X,
Top - ClientOrigin.Y, GetDeviceCaps( Canvas.handle,
HORZRES )
+ (Width - ClientWidth), GetDeviceCaps( Canvas.handle,
VERTRES )
+ (Height - ClientHeight ));
                  end
else BoundsRect := Rect;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;

end.

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

Чтобы сделать форму полноэкранной, вам нужно установить ее границы в соответствии с размером рабочего стола. Вот как это можно сделать:

procedure TForm1.Button1Click(Sender: TObject);
begin
  FullScreen := not FullScreen;
  if FullScreen then
    SetBounds(
      Screen.MonitorFromWindow(self).Left,
      Screen.MonitorFromWindow(self).Top,
      Screen.WorkareaWidth,
      Screen.WorkareaHeight)
  else
    BoundsRect := Rect(0, 0, ClientWidth, ClientHeight);
end;

В этом коде, когда событие Button1Click происходит, он переключает булевое значение FullScreen и устанавливает границы формы соответственно. Если форма полноэкранная, то ее границы устанавливаются в соответствии с размером рабочего стола.

Также можно использовать метод ShowModal, чтобы центрировать форму на экране:

procedure TForm1.Button2Click(Sender: TObject);
begin
  if FullScreen then
    ShowModal
  else
    Close;
end;

В этом коде, если форма не полноэкранная, то она закрывается, а если полноэкранная, то она отображается в виде модального диалога, центрированного на экране.

Однако стоит отметить, что установка формы в полноэкранный режим не означает, что все другие окна будут скрыты. Пользователь может все еще доступ к другим окнам, перемещая мышку к краям экрана.

В статье описывается, как в Delphi развернуть форму на весь экран, создавая именнованный метод WMGetMinMaxInfo для управления размерами формы и изменяя ее boundsRect при помощи константы Rect.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 17:50:01/0.0033218860626221/0