Einzelnen Beitrag anzeigen

Olli4362

Registriert seit: 21. Sep 2016
5 Beiträge
 
#10

AW: Delphi Berlin 10.1 ScaleBy TPageControl

  Alt 24. Sep 2016, 16:57
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.

Geändert von MrSpock (30. Sep 2016 um 09:18 Uhr) Grund: Code Tags eingefügt
  Mit Zitat antworten Zitat