Ура!!! Покопался в WinApi и разобрался, как проще сделать вывод в вьюшку повернутого текста. Проще оказалось создать новый шрифт, как советовал Александр Ильин, лишь с отличием, что для создания использован CreateFontW а не CreateFontIndirect.

Привожу функцию и результат работы. Всем огромное спасибо за участие в обсуждении!

## Код:
```
PROCEDURE DrawStringA(f: Views.Frame; x,y: INTEGER; angle: INTEGER; col: Ports.Color; s: ARRAY OF CHAR; font: Fonts.Font);
   VAR n, a, res: INTEGER; dc: WinApi.HANDLE; ind: WinApi.BOOL;
      NewFont: WinApi.HFONT; df: HostFonts.DevFont; pt: HostPorts.Port;
      fsize : WinApi.SIZE;
   BEGIN
      pt := f.rider(HostPorts.Rider).port;
      dc := pt.dc;
      res := WinApi.SaveDC(dc);
      res := WinApi.SetBkMode(dc, WinApi.TRANSPARENT);
      res := WinApi.SetTextColor(dc, col);
   (* Вычисляем длину строки *)
      a := LEN(s) - 1; n := 0;
      WHILE (n < a) & (s[n] # 0X) DO
         INC(n)
      END;
      IF angle MOD 360 = 0 THEN
      (* Если угол поворота кратен 360, то использовать обычный шрифт *)
         df := font(HostFonts.Font).dev;
         res := WinApi.SelectObject(dc,df.id);
         res := WinApi.TextOutW(dc, x, y, s, n);
         res := WinApi.RestoreDC(dc, -1)
      ELSE
      (* Иначе, создать новый шрифт *)
         NewFont := WinApi.CreateFontW(-((font.size + pt.unit DIV 2) DIV pt.unit), 0, angle*10, angle*10, Fonts.normal, 0, 0, 0, 0, 7, 2, 1, 38, font.typeface);
      (* Вычислить ширину строки (для сдвига по Y) *)
         ind := WinApi.GetTextExtentPoint32W(dc, s, n, fsize);
      (* Выбрать шрифт *)
         res := WinApi.SelectObject(dc, NewFont);
      (* Вывести текст *)
         res := WinApi.TextOutW(dc, x, y + fsize.cx DIV 2, s, n);
         res := WinApi.RestoreDC(dc, -1);
      (* Удалить шрифт *)
         ind := WinApi.DeleteObject(NewFont);
      END
END DrawStringA;
...

(* пример использования выдернутый из контекста *)
DrawStringA(f, I(l/f.dot-30), I((t+(h DIV 2))/f.dot), 90, Ports.black, temp, font);
```


Вложение:Комментарий к файлу:итог, пример использования функции для вывода повернутого текста

Уы.gif [ 11.45 КБ | Просмотров: 19216 ]
