Talk:Application full screen mode
From Lazarus wiki
Jump to navigationJump to search
I think of : [code] procedure TForm1.ToggleFullScreen;
function IsFullScreen: boolean; var CheckScreenBounds: TRect; begin CheckScreenBounds := Screen.MonitorFromWindow(Handle).BoundsRect; Result := ((CheckScreenBounds.Top = Form1.BoundsRect.Top) and (CheckScreenBounds.Left = Form1.BoundsRect.Left) and (CheckScreenBounds.Bottom = Form1.BoundsRect.Bottom) and (CheckScreenBounds.Right = Form1.BoundsRect.Right)); end;
begin
if not IsFullScreen 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
if OriginalWindowState = wsMaximized then WindowState := wsMaximized else with OriginalBounds do SetBounds(Left, Top, Right - Left, Bottom - Top);
end;
end; [/code]
This lets the design-time decision of BorderStyle be honoured when coming back from full screen, by not treating the BorderStyle variable as form state variable.