TLogicFont用法:    procedure SetLogicFont(ACanvas: TCanvas;W: Integer = 0;H: Integer = 0);
     var LogicFont: TLogFont;
    begin
      with LogicFont,ACanvas.Font do
      begin
        if H = 0 then lfHeight := Height
        else lfHeight := H;
        lfWidth  := W;
        lfEscapement := 10*Direction;
        lfOrientation := 10*Direction;
        lfWeight := FW_NORMAL;//FW_BOLD;
        lfItalic := BYTE(fsItalic in Style);
        lfUnderline := BYTE(fsUnderline in Style);
        lfStrikeOut := BYTE(fsStrikeOut in Style);
        lfCharSet := Charset;
        lfOutPrecision := OUT_TT_PRECIS;
        lfClipPrecision := CLIP_DEFAULT_PRECIS;
        lfQuality := DEFAULT_QUALITY;        lfPitchAndFamily := DEFAULT_PITCH or FF_DONTCARE;
        StrCopy(lfFaceName,PChar(Name));
      end;
      ACanvas.Font.Handle := Windows.CreateFontIndirect(LogicFont);
  end;