Full Screen

Top  Previous  Next

Egy egyszerű és praktikus teljes képernyőre váltás.

 

ALZ és STM két grafikus komponens a Form1.Tabsheet1-2 lapokon.

Ctrl+Enterre megnyílik a teljes képernyős Form2, amiből Esc-vel lehet visszatérni.

A Form2 átveszi a teljes képernyőre szánt komponens szülői szerepét, majd bezáráskor visszaadja azt az eredetinek.

 

Egy üres Form2-t kell létrehozni, melynél: Align=alClient; Borderstyle=bsNone; WindowState=wsMaximized;

A két formnak látnia kell egymást.

Mindkét formon a KeyPreview=True;

 

FORM1

 

type

TForm1 = class(TForm)

       ......

public

   property FullScreen: boolean read FFullScreen write SetFullScreen;

end;

 

implementation

 

uses Unit2;

 

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

IF Shift=[ssCtrl] then

Case Key of

VK_RETURN :

    FullScreen := not FullScreen;

END;

end;

 

procedure TForm1.SetFullScreen(const Value: boolean);

begin

FFullScreen := Value;

if PageControl1.ActivePageIndex=0 then

if Value then begin

    ALZ.Parent:=Form2;

    ALZ.ParentWindow:=Form2.Handle;

    ALZ.Align := alClient;

    Form2.Show;

end else begin

    ALZ.Parent:=Form1.TabSheet1;

    ALZ.ParentWindow:=Form1.TabSheet1.Handle;

    ALZ.Align := alClient;

    Form2.Close;

end;

 

if PageControl1.ActivePageIndex=1then

if Value then begin

    STM.Parent:=Form2;

    STM.ParentWindow:=Form2.Handle;

    STM.Align := alClient;

    Form2.Show;

end else begin

    STM.Parent:=Form1.TabSheet2;

    STM.ParentWindow:=Form1.TabSheet2.Handle;

    STM.Align := alClient;

    Form2.Close;

end;end;

 

 

FORM2

 

unit Unit2;

 

interface

 

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

 

type

TForm2 = class(TForm)

   procedure FormKeyDown(Sender: TObject; var Key: Word;

     Shift: TShiftState);

private

   { Private declarations }

public

   { Public declarations }

end;

 

var

Form2: TForm2;

 

implementation

 

uses STAFImageTest1; // Form1 unit-ja

 

{$R *.DFM}

 

procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if Key=VK_ESCAPE then

    Form1.FullScreen := False;

end;

 

end.