anchor.diff:      // For bitmap fonts, multiply by 256 manually
       for TheChar := #0 to #255 do
       begin
  -      FCurrentFont.pCharWidthArray^[ TheChar ] :=
  -        FCurrentFont.pCharWidthArray^[ TheChar ]
  -        * FontWidthPrecisionFactor;
  +      FCurrentFont.pCharWidthArray^[ TheChar ] := FCurrentFont.pCharWidthArray^[ TheChar ];
       end;
     end;
  -
  -  //GpiQueryFontMetrics( FCanvas.Handle,
  -  //                     sizeof( fm ),
  -  //                     fm );
  -  //FCurrentFont.lMaxbaseLineExt := fm.lMaxbaselineExt;
  -  //FCurrentFont.lAveCharWidth := fm.lAveCharWidth;
  -  //FCurrentFont.lMaxCharInc := fm.lMaxCharInc;
  -  //FCurrentFont.lMaxDescender := fm.lMaxDescender;
   end;
   
   procedure TCanvasFontManager.EnsureMetricsLoaded;
  
positive.code: 
    // allocate memory for storing the char widths
    GetMem( FCurrentFont.pCharWidthArray, sizeof( TCharWidthArray ) );
    //if not GpiQueryWidthTable( FCanvas.Handle,
    //                           0, 256,
    //                           FCurrentFont.pCharWidthArray^[ #0 ] ) then
    //begin
    //  raise Exception.Create( 'Error getting character width table: '
    //                          + 'GpiQueryWidthTable error '
    //                          + IntToStr( WinGetLastError( AppHandle ) ) );
    //end;
  
    // Convert all widths to positive!
    // For unknown reason, sometimes GPI returns negative values...
    for TheChar := #0 to #255 do
    begin
      FCurrentFont.pCharWidthArray^[ TheChar ] := Abs( FCurrentFont.pCharWidthArray^[ TheChar ] );
  
negative.code:     // ack! Pfffbt! Couldn't find the font.
  
      // Try to get the default font
  //    writeln('---------- here goes nothing -------------');
      Font := GetFont( FDefaultFontSpec );
      if Font = nil then
      begin
  