📄 usub3.pas
字号:
unit uSub3;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, uMain, Magnetic;
type
TfrmChild3 = class(TForm)
btnClose: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure FormShow(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure WndProc(var Msg_ : TMessage); override;
end;
var
frmChild3: TfrmChild3;
implementation
{$R *.DFM}
var
MagneticWndProc : TSubClass_Proc;
// procedure to subclass form's window procedure for magnetic effect.
procedure TfrmChild3.WndProc(var Msg_ : TMessage);
var
Handled: boolean;
begin
if not Assigned(MagneticWndProc) then
begin
inherited WndProc(Msg_);
exit;
end;
if (Msg_.Msg = WM_SYSCOMMAND) or (Msg_.Msg = WM_ENTERSIZEMOVE) or (Msg_.Msg = WM_EXITSIZEMOVE) or
(Msg_.Msg = WM_WINDOWPOSCHANGED) or (Msg_.Msg = WM_COMMAND)then
begin
inherited WndProc(Msg_);
MagneticWndProc(Self.Handle, Msg_.Msg, Msg_, Handled);
end else if (Msg_.Msg = WM_MOVING) or (Msg_.Msg = WM_SIZING) then
begin
MagneticWndProc(Self.Handle, Msg_.Msg, Msg_, Handled);
if not Handled then
inherited WndProc(Msg_);
end else
inherited WndProc(Msg_);
end;
procedure TfrmChild3.FormShow(Sender: TObject);
begin
if not Assigned(MagneticWndProc) then
if Assigned(MagneticWnd) then
MagneticWnd.AddWindow(Self.Handle, frmParent.Handle, MagneticWndProc);
end;
procedure TfrmChild3.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmChild3.FormDestroy(Sender: TObject);
begin
if Assigned(MagneticWnd) then
MagneticWnd.RemoveWindow(Self.Handle);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -