Вращение текста
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;