Delphi F11 全屏

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.


你可能感兴趣的:(Delphi)