[Qt] QT patch

Felipe Monteiro de Carvalho felipemonteiro.carvalho at gmail.com
Tue Jan 9 12:38:58 CET 2007


Here is test code for a rotated text app (put on a app with only 1
form and no controls on it):


function CreateRotatedFont(F : TFont; Angle : Integer) : hFont;
 {-create a rotated font based on the font object F}
var
 LF : TLogFont;
begin
 FillChar(LF, SizeOf(LF), #0);
 with LF do begin
   lfHeight           := F.Height;
   lfWidth            := 0;
   lfEscapement       := Angle*10;
   lfOrientation      := 0;
   if fsBold in F.Style then
     lfWeight         := FW_BOLD
   else
     lfWeight         := FW_NORMAL;
   lfItalic           := Byte(fsItalic in F.Style);
   lfUnderline        := Byte(fsUnderline in F.Style);
   lfStrikeOut        := Byte(fsStrikeOut in F.Style);
   lfCharSet          := DEFAULT_CHARSET;
   StrPCopy(lfFaceName, F.Name);
   lfQuality          := DEFAULT_QUALITY;
   {everything else as default}
   lfOutPrecision     := OUT_DEFAULT_PRECIS;
   lfClipPrecision    := CLIP_DEFAULT_PRECIS;
   case F.Pitch of
     fpVariable : lfPitchAndFamily := VARIABLE_PITCH;
     fpFixed    : lfPitchAndFamily := FIXED_PITCH;
   else
     lfPitchAndFamily := DEFAULT_PITCH;
   end;
 end;
 Result := CreateFontIndirect(LF);
end;


procedure TForm2.FormCreate(Sender: TObject);
begin
 MyFont := CreateRotatedFont(Canvas.Font, 45);
end;

procedure TForm2.FormPaint(Sender: TObject);
begin
 SelectObject(Canvas.Handle, MyFont);
 Canvas.TextOut(200, 200, 'Texto para ser escrito');
end;

-- 
Felipe Monteiro de Carvalho



More information about the Qt mailing list