Danke für die Info!
Ich habe das noch mal genauer untersucht:
Es funktioniert (zumindest nach dem ersten Update von Delphi 10.1) richtig.
Leider nicht immer:
Ist auf dem Tabsheet eine Element, dass beim Alignment alRight gesetzt hat, dann sind die Elemente zu breit.
Vermutlich wird die Breite schon durch das Aligment auf den richtigen Wert geändert, und dann die Breite mit ChangeScale nochmals angepasst. Dann ragt es drüber.
Dabei hilft auch leider das komplette Entfernen der Zeilen in TPageControl.ChangeScale nicht.
in der
VCL.Controls gibt es noch
Delphi-Quellcode:
procedure TWinControl.ChangeScale(M, D: Integer; isDpiChange: Boolean);
begin
[B]DisableAlign[/B];
try
if not isDpiChange then
ScaleControls(M, D);
if (M <> D) and (csReading in ComponentState) and
(sfDesignSize in ScalingFlags) then
begin
FDesignSize.X := MulDiv(FDesignSize.X, M, D);
FDesignSize.Y := MulDiv(FDesignSize.Y, M, D);
end;
inherited ChangeScale(M, D, isDpiChange);
ScalePadding(M, D);
finally
[B]EnableAlign[/B];
end;
end;
Scheint aber für die Tabsheets nicht zu funktionieren.