Der Fehler liegt hier:
Delphi-Quellcode:
procedure TPageControl.ChangeScale(M, D: Integer; isDpiChange: Boolean);
var
I: Integer;
begin
inherited ChangeScale(M, D, isDpiChange);
for I := 0 to FPages.Count - 1 do
TTabSheet(Fpages[I]).ChangeScale(M, D, isDpiChange);
end;
In dem inherited Aufruf werden die TabSheets bereits skaliert, da diese in Controls des PageControls drin sind und somit von ScaleControls erwischt werden. Die zusätzliche Skalierung muss raus...
Leider lässt sich das auch nicht ganz so einfach fixen... man muss dafür die
VMT verbiegen, quasi das Überschreiben der Methode in TPageControl rückgängig machen. Dann sollte alles funktionieren.
// EDIT:
Es gibt bereits eine entsprechende Bugmeldung, die ich soeben mit den Details ergänzt habe:
https://quality.embarcadero.com/browse/RSP-14750