Schriftstil (Style) fsBold im RichText (RTF) setzen/löschen



  • Hallo,

    habe in einem Richtext Feld eine Markierung und die soll mit einem Button
    Fett bzw. wieder nicht fett werden. Die Funktion ist mir klar:

    void __fastcall TForm1::frm1_btn6_FormatFClick(TObject *Sender)
    {if(frm1_rtfZustaendig->SelAttributes->Style==fsBold) {                         // ist Markierung ohne Bold?
      frm1_rtfZustaendig->SelAttributes->Style=TFontStyles()<< fsBold;              // Fett setzen
     }                                                                              // ende if(frm1_rtf
     else {                                                                         // Markierung hatt bereits Bold!
      frm1_rtfZustaendig->SelAttributes->Style=TFontStyles()>> fsBold;              // Fett löschen
     }                                                                              // ende else
    }
    

    Problem: Die Abfrage, ob die Markierung bereits Fett ist oder nicht,
    bekomme ich einfach nicht hin; habe schon alles mögliche ausprobiert und
    gesucht, hat jemand einen Tipp (also mit einem Button den Fettdruck praktisch
    an-/ausschalten).

    Danke Stefan



  • Style ist ein Set sollte über eine Methode Contains verfügen...



  • Hallo, Sunday

    vielen Dank für den Tipp. Für alle anderen Anfänger wie mich hier
    die Lösung als Text:

    if(frm1_rtfZustaendig->SelAttributes->Style.Contains(fsBold)==false) {         // ist Markierung ohne Bold?
      frm1_rtfZustaendig->SelAttributes->Style=TFontStyles()<< fsBold;              // Fett setzen
     }                                                                              // ende if(frm1_rtf
     else {                                                                         // Markierung hatt bereits Bold!
      frm1_rtfZustaendig->SelAttributes->Style=TFontStyles()>> fsBold;              // Fett löschen
     }                                                                              // ende else
    

    Gruss Stefan Scholz


Anmelden zum Antworten