Sign in Join
Wiki copytemporary

Application full screen mode/fr

English · Français

Introduction

Quelques applications telles des fouineurs Web permettent de montrer en mode plein écran en utilisant la touche F11. En mode plein écran, la fenêtre n'a pas de bordure ni de barre de titre et occupe l'espace entier. La barre de tâche est aussi cachée.

Pour être capable de passer en mode plein écran, vous aurez besoin:

La meilleure façon de capturer la touche voulue consiste à utiliser les Actions. Définissez simplement une nouvelle action dans le gestionnaire d'actions et affectez-lui un raccourci-clavier. Ainsi le raccourci fonctionnera même si la fiche perd le focus.

Programme d'exemple

pascal
unit Unit1; 

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  Menus;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  private
  public
    OriginalBounds: TRect;
    OriginalWindowState: TWindowState;
    ScreenBounds: TRect;
    procedure SwitchFullScreen;
  end; 

var
  Form1: TForm1; 

implementation

{$R *.lfm}

{ TForm1 }

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.

Obtenir la taille de la barre de tâche

Si vous voulez garder la barre de tâches visible, vous devez ajuster la taille en fonction de la position et de la taille de la barre de tâche.

Pour Windows:

pascal
function GetTaskBarSize: TRect;
begin
  SystemParametersInfo(SPI_GETWORKAREA, 0, @Result, 0);
end;

Façon GTK de passer en mode plein écran

Pour passr la fiche dans les dimensions plein écran:

pascal
gdk_window_fullscreen(PGtkWidget(Handle)^.window);

Pour revenir au mode normal:

pascal
gdk_window_unfullscreen(PGtkWidget(Handle)^.window);

C'est uniquement pour GTK2. Vous devez ajouter à la section uses des unités tels que gtk2, gdk2, glib2.Vous pouvez le faire avec la directive {$IFDEF LCLGTK2}, gtk2, gdk2, glib2{$ENDIF}.

Changer la résolution de l'écran

Actuellement, il n'y a pas de manière indépendante de l'OS pour basculer la résolution de l'écran.

Pour Windows, vous pouvez trouver des informations dans l'article pour Delphi Get and Set Screen Resolution (Display Device Modes)

Voir aussi

Liens externes


From the Free Pascal wiki, page "Application full screen mode/fr", as it stood on 2020-02-09 after a change by GAN, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.