Text in beliebigem Winkel und Größe ausgeben - C++ Builder Snippets
C++ Builder Snippets
<
Wer sich mit dem Thema etwas intensiver auseinandersetzen möchte, sollte sich die Struktur LOGFONT genauer ansehen, hier werden alle Attribute eines Fonts definiert.
Die Ausgabe erfolgt wiederum mit Canvas.
1 |
TextOut(int X, int Y, const AnsiString Text); |
Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
//--------------------------------------------------------------------------- //******** ******** //******** Dieses Beispiel stammt von www.ecodes.de ******** //******** ******** #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { Canvas->FillRect(ClientRect); static r=0; GraphicText("Demo von www.ecodes.de",clBlack,100,100,r,r,"Arial",15); GraphicText("Demo von www.ecodes.de",clRed,100,200,0,r,"Arial",25); r++; if (r>360) r=0; } //--------------------------------------------------------------------------- //Eigene Funktion zur erstellung des Textes als Grafik //Zu übergebende Werte sind: Auszugebender Text, Textfarbe, Textposition X, Textposition Y, Winkel Schrift, Winkel Buchstabe, Font, Fontgröße void __fastcall TForm1::GraphicText(AnsiString AText,TColor colore, int PosX, int PosY, int wS, int wB, AnsiString font, int fontsize){ LOGFONT mfon; //Font Struktur Canvas->Font->Size = fontsize; // Fontgröße Canvas->Font->Name = font; //Fontname //Informationen zum Canvas->Font Objekt ermitteln GetObject(Canvas->Font->Handle, sizeof(LOGFONT), &mfon); //Textwinkel setzen mfon.lfEscapement = wS*10; //Buchstabenwinkel setzen mfon.lfOrientation = wB*10; //nur TrueType fonts verwenden mfon.lfOutPrecision = OUT_TT_ONLY_PRECIS; //Font aus mfon erstellen Canvas->Font->Handle = CreateFontIndirect(&mfon); //Grafik mode für Device Context setzen (siehe auch GM_COMPATIBLE) SetGraphicsMode(Canvas->Handle, GM_ADVANCED); //Transparenz Canvas->Brush->Style = bsSolid ;// bsClear; //Farbe des Textes Canvas->Font->Color = colore; //Ausgabe Canvas->TextOut(PosX,PosY, AText); } |