[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]

    Try the following function.  I don't remember where I got it from, but it
    works well!  The only thing to remember here is the parameter 'd' is in
    tenths of a degree.  So, if you want to rotate the text 45 degrees, 'd'
    should be 450.  Sorry for the funny wrapping, I'm sure you can figure it
    out:

    procedure CanvasTextOutAngle(c: TCanvas; x,y: Integer; d: Word; s: string);
    var
      LogRec: TLOGFONT;     {* Storage area for font information *}
      OldFontHandle,        {* The old font handle *}
      NewFontHandle: HFONT; {* Temporary font handle *}
    begin
      if Application.Terminated then Exit;
      {* Get the current font information. We only want to modify the angle *}
      GetObject(c.Font.Handle, SizeOf(LogRec), Addr(LogRec));
      {* Modify the angle. "The angle, in tenths of a degrees, between the base
         line of a character and the x-axis." (Windows API Help file.)*}
      LogRec.lfEscapement := d;
      {* Create a new font handle using the modified old font handle *}
      NewFontHandle := CreateFontIndirect(LogRec);
      {* Save the old font handle! We have to put it back when we are done! *}
      OldFontHandle := SelectObject(c.Handle,NewFontHandle);
      {* Finally. Output the text! *}
      c.Brush.Style := bsClear;
      c.TextOut(x,y,s);
      {* Put the font back the way we found it! *}
      NewFontHandle := SelectObject(c.Handle,OldFontHandle);
      {* Delete the temporary (NewFontHandle) that we created *}
      DeleteObject(NewFontHandle);
    end; {* CanvasTextOutAngle *}

    --
    David S. Becker
    ADP Dealer Services (Plaza R&D)
    dsb@plaza.ds.adp.com
    (503)402-3236

    Stephen Gould <sgould@extro.ucc.su.OZ.AU> wrote in article
    <59tup1$1i9@metro.ucc.su.OZ.AU>...
    > Hi,
    >
    > Does anyone know of a good way to rotate text and display it in a
    > PaintBox. At the moment I am creating a TCanvas object in memory, drawing

    > the text on it, then rotating the whole canvas and dumping it in the
    > paintbox. Is there a better way? The text comes out looking pretty bad.
    >
    > Steve.
    > gouldy@mad.scientist.com
    >
    >

[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]