Не понятно... куда ты его хочеш выводить... ну да ладно 
| Код | procedure StrRotated(Win:THandle;Font:HFont;Str:string;Ang:Extended); var nXF,oXF:TXForm; s:TStrings; i:integer; r:TSize; DC:HDC; fNew,fOld:HFont; begin DC:=GetDC(Win); fNew:=SendMessage(Win,WM_GETFONT,0,0); if fNew=0 then fNew:=Font; fOld:=SelectObject(DC,fNew); s:=TStringList.Create; s.Text:=Str; SetGraphicsMode(DC,GM_Advanced); GetWorldTransform(DC,oXF); nXF.eM11:=Cos(Ang*Pi/180); nXF.eM22:=Cos(Ang*Pi/180); nXF.eM12:=Sin(Ang*Pi/180); nXF.eM21:=-Sin(Ang*Pi/180); nXF.eDX:=0; nXF.eDY:=0; ModifyWorldTransform(DC,nXF,MWT_LEFTMULTIPLY); for i:=0 to s.Count-1 do begin GetTextExtentPoint32(DC,PChar(s.Strings[i]),Length(s.Strings[i]),r); TextOut(DC,0,i*r.cy,PChar(s.Strings[i]),Length(s.Strings[i])); end; SetWorldTransform(DC,oXF); s.Free; SelectObject(DC,fOld); ReleaseDC(Win,DC); end; | Использование: StrRotated(Memo1.Handle,Memo1.Font.Handle,Memo1.text,20); или StrRotated(Form1.Handle,Form1.Font.Handle,Memo1.text,20); |