Rotación de un texto.

Uses
  Windows,
  Graphics;
procedure AngleTextOut(Canvas: TCanvas; const Text: String; x, y, angle:
Integer);
var
  LogFont  : TLogFont;
  SaveFont : TFont;
begin
  SaveFont := TFont.Create;
  SaveFont.Assign(Canvas.Font);
  GetObject(SaveFont.Handle, sizeof(TLogFont), @LogFont);
  with LogFont do
  begin
   lfEscapement := angle *10;
   lfPitchAndFamily := FIXED_PITCH or FF_DONTCARE;
   lfOutPrecision:=out_tt_precis;
   lfQuality:=proof_quality;
  end;
  Canvas.Font.Handle := CreateFontIndirect(LogFont);
  SetBkMode(Canvas.Handle, TRANSPARENT);
  Canvas.TextOut(x, y, Text);
  Canvas.Font.Assign(SaveFont);
  SaveFont.Free;
end;

La llamada a la función se podría hacer, algo así como …

AngleTextOut(Canvas, ‘Texto a Rotar’,10,10,45);

La función la puedes incluir dentro de un boton o ponerla en el evento del Formulario ::FormPaint, de esta forma no se borrara el texto, aun minimizando.