Man könnte natürlich die Instanz des Dialogs immer dann neu erstellen, bevor er angezeigt wird.
(und danach wieder freigeben)
Zitat:
Diese Position wird nur einmal beim Erstellen des Fensters errechnet
Noch schlimmer, je nach Modus wird es hier oder da oder geteilt (hier und da) berechnet.
TCustomForm.CreateParams (oft noch vor OnCreate, aber manchmal auch mittendrinn), TCustomForm.SetWindowToMonitor und TCustomForm.CMShowingChanged
Alternativ: Vor dem Show/ShowModal mit DestroyWindowHandle rumzupfuschen, ... das will doch niemand