procedure MyRotateText(CV : TCanvas; sText:String; X, Y, Angle:Integer); {угол в градусах} VAR LogFont : TLogFont; BEGIN GetObject(CV.Font.Handle, SizeOf(TLogFont), @LogFont); LogFont.lfEscapement:= Angle*10; CV.Font.Handle := CreateFontIndirect(LogFont); CV.TextOut(X,Y,sText); END; К примеру, при задании угла Angle = -90, тект выведется вертикально по направлению сверху вниз. Простое решение для сохранения оригинального шрифта: Var SaveFont: TFont;
SaveFont := TFont.Create; SaveFont.Assign (CV.Font); CV.Font := CreateFontIndirect (....) (....) CV.Font.Assign (SaveFont); SaveFont.Free; |