und dann nicht so:
Delphi-Quellcode:
procedure TFORM1.WndProc(var Message: TMessage);
begin
if (Message.msg = WM_Move) then
begin
Form2.left := Form1.left;
Form2.top := Form1.Top+183;
end;
inherited WndProc(Message);
end;
sondern mindestens so
Delphi-Quellcode:
procedure TFORM1.WndProc(var Message: TMessage);
begin
if (Message.msg = WM_Move) then
begin
Form2.left := Self.left;
Form2.top := Self.Top+183;
end;
inherited WndProc(Message);
end;
Ansonsten kannst du gleich den Objectteil weg lassen und zur völlig zur globalen Programmierung übergehen.
Richtig/Perfekt wäre es dann wenn Form2 auch weg kommt (sofern Form2 die globale Instanzvariable ist) und dafür eine klassenvariable dafür verwendet wird.