Text zentrieren



  • Tach zusammen!

    Ich will mit TextOut einen Text zentriert auf dem Bildschirm ausgeben. Mit Size kann man ja die Höhe feststellen, oder festlegen, kann ich auch die Breite eines Schriftzeichens oder Strings auslesen?



  • Siehe zB. TCanvas::TextExtent



  • Danke für den Hinweis!

    ich habe folgendes versucht...
    Image1->Canvas->TextOut(Image1->Width / 2 - Image1->Canvas->TextExtent(Form1->Rechnungs_Zusatz->Text),1100,Form1->Rechnungs_Zusatz->Text);

    Aber das funktioniert leider so nicht 😕

    Da kommt immer folgende Fehlermeldung:
    [C++Fehler] Unit7.cpp(366): Illegal structure operation.
    Der hat irgendein Problem mit dem Minuszeichen.



  • Für einen Blick in die Hilfe hat's wiedermal nicht gereicht?

    TextExtent ist ein Struct, das aus zwei Variablen besteht, du musst dich also bei der Abfrage schon für eine Variable entscheiden.[cpp] ... Image1->Canvas->TextExtent(...).cx ...[/cpp]
    Ausserdem findet sich in der Hilfe noch dieser interessante Satz:

    To check only the height, call TextHeight. To check only the width, call TextWidth.



  • Zu erwähnen wäre vielleicht noch die API-Funktion DrawText welche von sich aus einen Text zentriert ausgeben kann. Ist aber, wie gesagt, eine WIN-API Funktion und es braucht noch ein paar zusätzliche Dinge um sie in Verbindung mit TCanvas zu verwenden 😉


Anmelden zum Antworten