In neueren Delphi-Version gibt es in den Projektoptionen unter Anwendung - Manifest die Option "DPI-Unterstützung". Diese Einstellung wird in Deine Exe-Datei eingebunden und Windows kann feststellen, ob das Programm mit hochauflösenden Monitoren umgehen kann.
In älteren Version gibt es die Einstellung nicht und Windows skaliert das Programm automatisch, vergrößert also die Fenster-Darstellung, da man sonst auf einen hochauflösenden Monitor kaum noch etwas lesen könnte. Das entspricht der Einstellung "
GDI-Skalierung" in neueren Versionen. Man sieht dies meist an den pixelig aussehenden Schriften und Grafiken erkennen, die ja durch die Vergrößerung keine höhere Auflösung bekommen.
Das kann die Unterschiede in den Rückgabe-Werte von Screen.width und Screen.height erklären. Windows teilt eine virtuelle Bildschirmauflösung mit, die zu der vorgenommenen Skalierung des Fensters passt.
Lässt sich das Programm nicht mit einer neueren Delphi-Version umsetzen? Ansonsten müsste man versuchen, die tatsächliche Bildschirmgröße zu übermitteln oder die Windows-Skalierung über eine Manifest-Datei auszuschalten. Dann ist die Frage, ob die Programmoberfläche noch lesbar ist.