Issue #718: Fonts may be too large because they get scaled before the window gets moved to the wanted screen. So, this moves the code for scaling fonts to FormShow, so we can scale fonts according to the screen's DPI setting.

This commit is contained in:
Ansgar Becker
2019-07-18 07:52:59 +02:00
parent 70c79b33c5
commit 6a75e8c404

View File

@@ -9,10 +9,14 @@ uses
type
// Form with a sizegrip in the lower right corner, without the need for a statusbar
TExtForm = class(TForm)
private
FFontSet: Boolean;
public
constructor Create(AOwner: TComponent); override;
procedure AddSizeGrip;
class procedure InheritFont(AFont: TFont; Form: TForm);
protected
procedure DoShow; override;
end;
// Memo replacement which accepts any line break format
TLineNormalizingMemo = class(TMemo)
@@ -30,9 +34,22 @@ implementation
constructor TExtForm.Create(AOwner: TComponent);
begin
inherited;
InheritFont(Font, Self);
FFontSet := False;
end;
procedure TExtForm.DoShow;
begin
// Expect the window to be on the wanted monitor now, so we can scale fonts according
// to the screen's DPI setting
if not FFontSet then begin
InheritFont(Font, Self);
FFontSet := True;
end;
inherited;
end;
procedure TExtForm.AddSizeGrip;
var
FGripper: TSizeGripThemed;