Zitat von
Hansa:
procedure Tfrm.FormShow(Sender: TObject);
schlechte Idee, das im OnShow zu machen, da dieses Ereignis jedesmal beim Anzeigen aufgerufen wird. Dein Fenster wird also, wenn es verschoben ist, beim Anzeigen immer wieder auf die Startposition zurückspringen.