Hiya, got a wee question regarding font scaling, I'm writing a componet
with draws a scaled image, and I'm wanting to scale the text as well.

I'm trying to use the following function...

  function TMapLabel.GetFontHeight(Canvas: TCanvas): Integer;
  var
    iWorldWidth, iCanvasWidth, iPixelsX: Integer;
  begin
    iWorldWidth := Field.WorldView.Xr - Field.WorldView.Xl;
    iCanvasWidth := GetDeviceCaps(Canvas.Handle, HORZRES);
    iPixelsX := GetDeviceCaps(Canvas.Handle, LOGPIXELSX);
    Result := Round((iPixelsX / FontHeight) /
              (iWorldWidth / iCanvasWidth));
  end;

...which is assigned to Canvas.Font.Height.  The value of FontHeight
(property of TMapLabel) is just an arbitrary size value which doesn't
really equate to points/twips/pixels. (iWorldWidth / iCanvasWidth) gives
me the scale ratio that is used to draw the rest of the picture.

When I draw to a screen canvas, say on a TImage everything works fine, but
whenever I draw to a TPrinter canvas, the fonts are WAY large, does anyone
have any hints?

Mark




-- 
"I love you, you love me, Bill's a bad monopoly..." ...as heard in shadows bar.

Mark Derricutt
Now Playing: Yngwie Malmsteen - Marching Out

---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to