Wyświetlanie tekstu pod dowolnym kątem

Aby na formularzu wyświetlić napis pod dowolnym kątem:

Unit1.cpp

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   Form1->Canvas->Font->Name = "Arial";
   Form1->Canvas->Font->Size = 12;
   Form1->Canvas->Font->Color = clBlue;
   Form1->Canvas->Brush->Color = Form1->Color;
}


Unit1.cpp

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   LOGFONT LogFont;
   GetObject(Form1->Canvas->Font->Handle, sizeof(LOGFONT), &LogFont);
   LogFont.lfEscapement = 450;
   LogFont.lfOrientation = 450;
   Form1->Canvas->Font->Handle = CreateFontIndirect(&LogFont);
   Form1->Canvas->TextOut(100, 200, "Tekst pod kątem 45 stopni");
}


Pola lfEscapement i lfOrientation struktury LOGFONT są odpowiedzialne za kierunek wyświetlanego tekstu, należy przypisywać im takie same wartości (miarę kąta ustalamy w dziesiętnych stopnia więc 450 to 45 stopni).

Powyższa metoda może być stosowana jedynie do fontów typu TrueType. Można ją zastosować dla każdej dowolnej klasy zawierającej właściwość TCanvas (np. TBitmap). W takim przypadku wystarczy zamienić we wszystkich przedstawionych wywołaniach Form1 na nazwę rozpatrywanego obiektu.