• Delphi 中窗体全屏组件


    由于经常要用到窗体全屏功能 所以把他封装成了一个组件 这是主要代码

    1 {*******************************************************}
    2  { }
    3  { TFullScreen }
    4 { Ver 0.1.1 }
    5 { Copyright(C) 2006-2007 Unruly Wolf Soft }
    6 { }
    7 {*******************************************************}
    8
    9 unit FullScreen;
    10
    11 interface
    12
    13 uses
    14 SysUtils, Classes,Forms,Windows;
    15
    16 type
    17 TFullScreen = class(TComponent)
    18 private
    19 { Private declarations }
    20 FFullScreenMode : Boolean;
    21 FForm : TCustomForm;
    22 OldState,OldHeight,OldWidth,OldX,OldY:Longint;
    23 FOldState:TWindowState;
    24 FBeforeFullScreen:TNotifyEvent ;
    25 FAfterModeChanged:TNotifyEvent ;
    26 FAfterFullScreen:TNotifyEvent ;
    27 FExitFullScreen:TNotifyEvent ;
    28 Procedure SetFullScreenMode(aVal:Boolean);
    29 protected
    30 { Protected declarations }
    31 public
    32 { Public declarations }
    33 property FullScreen : Boolean read FFullScreenMode write SetFullScreenMode;
    34 property FormMain : TCustomForm read FForm write FForm;
    35 procedure SaveOldWinState;
    36 published
    37 { Published declarations }
    38 property BeforeFullScreen : TNotifyEvent read FBeforeFullScreen write FBeforeFullScreen;
    39 property AfterModeChanged : TNotifyEvent read FAfterModeChanged write FAfterModeChanged;
    40 property AfterFullScreen : TNotifyEvent read FAfterFullScreen write FAfterFullScreen;
    41 property ExitFullScreen : TNotifyEvent read FExitFullScreen write FExitFullScreen;
    42 end;
    43
    44 procedure Register;
    45
    46 implementation
    47
    48
    49 //Save form state
    50 procedure TFullScreen.SaveOldWinState ;
    51 begin
    52 if FForm<>nil then
    53 FOldState:=FForm.WindowState ;
    54 end;
    55
    56 procedure TFullScreen.SetFullScreenMode(aVal:Boolean);
    57 begin
    58 if aVal<>FFullScreenMode then
    59 begin
    60 FFullScreenMode:=aVal;
    61 if FFullScreenMode then
    62 //enter fullscreen
    63 begin
    64 OldState:=GetWindowLong(FForm.Handle, GWL_STYLE);
    65 OldHeight:=FForm.Height;
    66 OldWidth:=FForm.Width;
    67 OldX:=FForm.Left ;
    68 OldY:=FForm.Top;
    69 SaveOldWinState;
    70 if Assigned(FBeforeFullScreen) then FBeforeFullScreen(Self);
    71 FForm.Left:=0;
    72 FForm.Top:=0;
    73 FForm.windowstate:=wsmaximized;
    74 SetWindowLong(FForm.Handle, GWL_STYLE,
    75 GetWindowLong(FForm.Handle, GWL_STYLE) AND NOT WS_CAPTION);
    76 //FForm.windowstate:=wsmaximized;
    77 FForm.clientHeight:=screen.Height;
    78 FForm.Refresh;
    79 if Assigned(FAfterFullScreen) then FAfterFullScreen(Self);
    80 end
    81 else
    82 // Exit full screen
    83 begin
    84 SetWindowLong(FForm.Handle, GWL_STYLE, OldState);
    85 FForm.Height:=OldHeight;
    86 FForm.Width:=OldWidth;
    87 FForm.Left:=OldX;
    88 FForm.Top:=OldY;
    89 FForm.Windowstate:=FOldState;
    90 FForm.Refresh;
    91 if Assigned(FExitFullScreen) then FExitFullScreen(Self);
    92 end;
    93 end;
    94 if Assigned(FAfterModeChanged) then FAfterModeChanged(Self);
    95 end;
    96
    97 procedure Register;
    98 begin
    99 RegisterComponents('UWS Used', [TFullScreen]);
    100 end;
    101
    102 end.
    103

     组件下载:https://files.cnblogs.com/uws2056/FullScreen.rar

  • 相关阅读:
    九九乘法表
    杨辉三角
    显示计算机界面
    完善3.2
    杨辉三角形
    100以内的素数
    九九乘法表
    杨辉三角
    九九乘法表
    杨辉三角形
  • 原文地址:https://www.cnblogs.com/uws2056/p/1763988.html
Copyright © 2020-2023  润新知