Moin Nils,
ist zwar noch verbesserungsfähig, aber so ginge es.
Man fängt die Message WM_MOVING ab, die gesendet wird, wenn das Fenster bewegt wird.
LParam ist dann der Pointer auf ein Rect Struktur, die die jeweils aktuellen Koordinaten enthält.
Delphi-Quellcode:
type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
private
{ Private-Deklarationen }
protected
procedure WndProc(var msg : TMessage); override;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.DFM}
procedure TForm1.WndProc(var msg : TMessage);
var
prtWork : PRect;
begin
if msg.Msg = WM_MOVING then
begin
prtWork := PRect(msg.LParam);
Form2.Top := prtWork.Top;
Form2.Left := prtWork.Left-Form2.Width;
end;
inherited WndProc(msg);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Form2.Top := self.Top;
Form2.Left := self.Left - Form2.Width;
Form2.Show;
end;