Announcement

Collapse
No announcement yet.

Automatische Änderung der Farbe eines bestimmten Teils (Text) - TMemo oder TRichEdit

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Automatische Änderung der Farbe eines bestimmten Teils (Text) - TMemo oder TRichEdit

    Hallo,

    Ich möchte folgenden schreiben:

    stellen wir uns vor das ein Anwender in einem Textfeld (TMemo o. TRichEdit o. eigene Komponente) einen beliebigen Text schreibt. Sobald besipielsweise das Zeichen "!" auftritt, soll der ganze <b> Satz </b>, den der Anwender geschrieben hat, eine andere Farbe tragen.

    >> Übrigens: wie kann man überhaupt einzelne Lines in einer TRichEdit o. TMemo ändern (Farbe, Formatierungen, Größe, ...)

    Hoffe mich hat jemand verstanden, und kann mir auch helfen.

    Besten Dank im Vorraus.

  • #2
    Salve Sebastian! <br>

    Mit DefAttributes und SetAttributes(TRichEdit) kannst Du <br>
    Farbe usw. ändern.Mit DefA für den ganzen Text und mit SetA <br>
    den selectierten Text.<br>
    Wenn ich dich richtig verstehe, möchtest Du den Text wie im <br>
    Compiler farbig anzeigen.<br>
    Da bleibt die dann wohl nichts weiter übrig als mit KeyDown <br>
    und KeyPress die Eingabe abzufragen den Text zu selectieren und <br>
    und dann die Farbe zu ändern.<br>
    Mit SelStart und SelLength markierst Du den Text.<br>
    Du mußt dann aber auch beim einlesen einer Datei den gesammten <br>
    Text durchhecheln.<br>

    Gruß Fre

    Comment


    • #3
      Stimmt, das ist eine Möglichkeit, nur ich kenn mich leider noch nicht ganz damit aus, was den Code dazu angeht, aber ich hab ja wenigstens mitbekommen, wie ich überhaupt vorgehen sollen.

      Könntest du trotzdem netterweise einen Code ähnlicher Art schreiben ??? Wenn nicht ist auch nicht so schlimm...!

      Wenn ja - super dank !!!!

      Comment


      • #4
        Hi Sebastian! <br>

        int nr = 1; // Zeilennummer <br>
        int end = STLMemo->Text.Length();<br>
        int found = STLMemo->FindText( STLMemo->Lines->Strings[nr],0,<br>
        end, TSearchTypes()<< stMatchCase);<br>
        // die Zeile suchen <br>
        if (found != -1)<br>
        {// gefunden <br>
        STLMemo->SelStart = found; // Selektanfang<br>
        // select ende<br>
        STLMemo->SelLength=strlen( STLMemo->Lines->Strings[nr].c_str() );<br>
        // attribut setzen
        STLMemo->SelAttributes->Color = clRed;<br>
        }<br>

        Gruß Fre

        Comment

        Working...
        X