Problem ist, dass man mit den Parametern X und Y der Funktion mitteilt, die Eigenschaften Left und Top vom Dialog zu setzen. Für die wirkliche Mitte müsste man noch die halbe Breite des Dialogs abziehen, bzw. die halbe Höhe.
Delphi-Quellcode:
X := Form1.Left + (Form1.Width-BreiteDialog) div 2;
Y := Form1.Top + (Form1.Height-HoeheDialog) div 2;