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.
Ważne artykuły