In meinen Programmen speichere ich schon seit Jahren die Position, Breite und Höhe (und vieles andere) in der Registry. Das geht analog auch in 'ner INI.
Es funktioniert nur, wenn Position auf poDesigned steht.
Alles andere ist dauerhaft, über die Jahre und Delphiversionen, gescheitert.
Wenn Du die Position selbst bestimmen willst, ist es doch nicht erforderlich die Position automatisch bestimmen zu lassen und dann nach irgend 'nem Weg zu suchen, der die eigene Bestimmung der Position doch noch ermöglicht.
Und wenn im Objektinspektor schon unbeding Position auf poScreenCenter stehen muss, dann versuch' doch mal, ob (sinngemäß) sowas funktioniert:
Delphi-Quellcode:
// Irgendwo 'ner Prozedur vom Formular.
Self.Position := poDesigned;
Self.Left := ini.ReadInteger('Left',Self.Name,Self.Left);
Self.Top := ini.ReadInteger('Top',Self.Name,Self.Top);
...
Self.Position := poScreenCenter;