Delphi F11 全屏

时间:2022-05-22 15:35:24
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs; type
TForm1 = class(TForm)
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
OriginalBounds: TRect;
OriginalWindowState: TWindowState;
ScreenBounds: TRect;
procedure SwitchFullScreen;
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
const
KeyF11 = 122;
begin
if Key = KeyF11 then SwitchFullScreen;
end; procedure TForm1.SwitchFullScreen;
begin
if BorderStyle <> bsNone then begin
// To full screen
OriginalWindowState := WindowState;
OriginalBounds := BoundsRect; BorderStyle := bsNone;
ScreenBounds := Screen.MonitorFromWindow(Handle).BoundsRect;
with ScreenBounds do
SetBounds(Left, Top, Right - Left, Bottom - Top) ;
end else begin
// From full screen
{$IFDEF MSWINDOWS}
BorderStyle := bsSizeable;
{$ENDIF}
if OriginalWindowState = wsMaximized then
WindowState := wsMaximized
else
with OriginalBounds do
SetBounds(Left, Top, Right - Left, Bottom - Top) ;
{$IFDEF LINUX}
BorderStyle := bsSizeable;
{$ENDIF}
end;
end; end.