窗口跟随 回复 "heyongan" 的问题

问题来源: http://www.cnblogs.com/del/archive/2008/12/20/985931.html#1408193

本例中的 Form2 所在 Unit2 中没有任何代码, 以下是 Unit1 中的代码:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
  protected
    procedure WMMove(var Message: TWMMove); message WM_MOVE;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

uses Unit2;

var a,b: Integer;

procedure TForm1.FormShow(Sender: TObject);
begin
  Form2.Show;
  Form2.Left := Left;
  Form2.Top := Top + Height;
  a := Form2.Left - Left;
  b := Form2.Top - Top;
end;

procedure TForm1.WMMove(var Message: TWMMove);
begin
  if Assigned(Form2) then
  begin
    Form2.Left := Left + a;
    Form2.Top := Top + b;
  end;
  inherited;
end;

end.

原文地址:https://www.cnblogs.com/del/p/1358979.html