📄 usub2.pas
字号:
unit uSub2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, uMain, Magnetic, StdCtrls;
type
TfrmChild2 = class(TForm)
btnClose: TButton;
Label2: TLabel;
Label1: TLabel;
Label3: TLabel;
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure WMEnterSizeMove(var Msg: TMessage); message WM_ENTERSIZEMOVE;
procedure WMSizing(var Msg: TMessage); message WM_SIZING;
procedure WMMoving(var Msg: TMessage); message WM_MOVING;
procedure WMExitSizeMove(var Msg: TMessage); message WM_EXITSIZEMOVE;
procedure WMShowHideWindow(var Msg: TMessage); message WM_WINDOWPOSCHANGED;
procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
procedure WMCommand(var Msg: TMessage); message WM_COMMAND;
end;
var
frmChild2: TfrmChild2;
implementation
{$R *.dfm}
var
MagneticWndProc: TSubClass_Proc;
dummyHandled : boolean;
// ---------------------- Custom Message Handling procedures ----------------------
procedure TfrmChild2.WMEnterSizeMove(var Msg: TMessage);
begin
inherited;
if Assigned(MagneticWndProc) then
MagneticWndProc(Self.Handle, WM_ENTERSIZEMOVE, Msg, dummyHandled);
end;
procedure TfrmChild2.WMSizing(var Msg: TMessage);
var
bHandled: Boolean;
begin
if not Assigned(MagneticWndProc) then
inherited
else
if MagneticWndProc(Self.Handle, WM_SIZING, Msg, bHandled) then
if not bHandled then
inherited;
end;
procedure TfrmChild2.WMMoving(var Msg: TMessage);
var
bHandled: Boolean;
begin
if not Assigned(MagneticWndProc) then
inherited
else
if MagneticWndProc(Self.Handle, WM_MOVING, Msg, bHandled) then
if not bHandled then
inherited;
end;
procedure TfrmChild2.WMExitSizeMove(var Msg: TMessage);
begin
inherited;
if Assigned(MagneticWndProc) then
MagneticWndProc(Self.Handle, WM_EXITSIZEMOVE, Msg, dummyHandled);
end;
procedure TfrmChild2.WMShowHideWindow(var Msg: TMessage);
begin
inherited;
if Assigned(MagneticWndProc) then
MagneticWndProc(Self.Handle, WM_WINDOWPOSCHANGED, Msg, dummyHandled);
end;
procedure TfrmChild2.WMSysCommand(var Msg: TMessage);
begin
inherited;
if Assigned(MagneticWndProc) then
MagneticWndProc(Self.Handle, WM_SYSCOMMAND, Msg, dummyHandled);
end;
procedure TfrmChild2.WMCommand(var Msg: TMessage);
begin
inherited;
if Assigned(MagneticWndProc) then
MagneticWndProc(Self.Handle, WM_COMMAND, Msg, dummyHandled);
end;
//------------------- end of Custom Message Handling procedures -----------------
procedure TfrmChild2.FormShow(Sender: TObject);
begin
if not assigned(MagneticWndProc) then
if Assigned(MagneticWnd) then
MagneticWnd.AddWindow(Self.Handle, frmParent.Handle, MagneticWndProc);
end;
procedure TfrmChild2.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmChild2.FormDestroy(Sender: TObject);
begin
if Assigned(MagneticWnd) then
MagneticWnd.RemoveWindow(Self.Handle);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -