首页 > 代码库 > 同步窗体移动

同步窗体移动



方法2


unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure FormShow(Sender: TObject);
  private
    procedure WMMOVE(var Msg: TMessage); message WM_MOVE;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Unit2;

procedure TForm1.FormShow(Sender: TObject);
begin
  Form2.Visible := true;
end;

procedure TForm1.WMMOVE(var Msg: TMessage);
begin
  inherited;
  try
    Form2.Parent:=Panel1;
    Form2.Left:=0;
    Form2.Top:=0;
    Form2.Align:=alClient;

  except

  end;
end;

end.


方法1



unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
  private
   procedure WMMOVE(var Msg: TMessage);  message WM_MOVE;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Unit2;

procedure TForm1.WMMOVE(var Msg: TMessage);
begin
  inherited;
  try
    form2.Width :=  Panel1.Width;
    form2.Height := Panel1.Height;

    form2.left := Form1.left + Panel1.Left;
    form2.Top := Form1.Top + Panel1.Top;
  except

  end;
end;
end.




来自为知笔记(Wiz)


附件列表