diff --git a/lcl/graphics.pp b/lcl/graphics.pp index 1ffab16944..7d5ee15bbe 100644 --- a/lcl/graphics.pp +++ b/lcl/graphics.pp @@ -528,6 +528,7 @@ type procedure SetData(const FontData: TFontData); procedure SetHandle(const Value: HFONT); procedure ReferenceNeeded; + procedure SetPixelsPerInch(const APixelsPerInch: Integer); protected function GetCharSet: TFontCharSet; function GetHeight: Integer; @@ -568,7 +569,7 @@ type property IsMonoSpace: boolean read GetIsMonoSpace; procedure SetDefault; property CanUTF8: boolean read GetCanUTF8; deprecated; - property PixelsPerInch: Integer read FPixelsPerInch write FPixelsPerInch; + property PixelsPerInch: Integer read FPixelsPerInch write SetPixelsPerInch; property Reference: TWSFontReference read GetReference; published property CharSet: TFontCharSet read GetCharSet write SetCharSet default DEFAULT_CHARSET; diff --git a/lcl/include/font.inc b/lcl/include/font.inc index 752adace70..fe4bbe1231 100644 --- a/lcl/include/font.inc +++ b/lcl/include/font.inc @@ -850,6 +850,19 @@ Begin end; end; +procedure TFont.SetPixelsPerInch(const APixelsPerInch: Integer); +var + OldPPI: Integer; +begin + if FPixelsPerInch = APixelsPerInch then Exit; + OldPPI := FPixelsPerInch; + FPixelsPerInch := APixelsPerInch; + + // the Height value is not correct anymore -> force recalculate it + if Height<>0 then + Height := MulDiv(Height, APixelsPerInch, OldPPI); +end; + {------------------------------------------------------------------------------ Method: TFont.SetHeight Params: Value: the new value