Dir wird nix übrigbleiben, als dir die "aktuelle" Position zu merken und nach dem Anzeigen neu zu setzen,
denn weder SetVisible, noch SetWindowToMonitor lassen sich überschreiben/verändern.
Delphi-Quellcode:
procedure TCustomForm.Show;
begin
Visible := True;
BringToFront;
end;
procedure TCustomForm.SetVisible(Value: Boolean);
begin
if fsCreating in FFormState then
if Value then
Include(FFormState, fsVisible) else
Exclude(FFormState, fsVisible)
else
begin
if Value and (Visible <> Value) then SetWindowToMonitor;
inherited Visible := Value;
end;
end;