makierter text von TRicheEdit ändern



  • Hallo,

    Ich habe mir aus der CBuilder hilfe , das suchen in einem RichEdit text rausgenommen.

    void __fastcall TForm1::Button1Click(TObject *Sender)
    
    {
      FindDialog1->Position = Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top);
      FindDialog1->Execute();
    
    }
    
    void __fastcall TForm1::FindDialog1Find(TObject *Sender)
    
    {
      int FoundAt, StartPos, ToEnd;
      // Suche hinter aktueller Markierung beginnen (falls vorhanden).
      // Andernfalls am Textanfang starten.
      if (RichEdit1->SelLength)
        StartPos = RichEdit1->SelStart + RichEdit1->SelLength;
      else
    
        StartPos = 0;
    
      // ToEnd ist die Länge von StartPos 
      // bis zum Textende in Steuerelement.
    
      ToEnd = RichEdit1->Text.Length() - StartPos;
    
      FoundAt = RichEdit1->FindText(FindDialog1->FindText, StartPos, ToEnd, TSearchTypes()<< stMatchCase);
      if (FoundAt != -1)
      {
        RichEdit1->SetFocus();
        RichEdit1->SelStart = FoundAt;
        RichEdit1->SelLength = FindDialog1->FindText.Length();
      }
    }
    

    das klappt auch ganz gut, aber was ich jetzt gern noch wissen möchte ist wie kann ich den makierten text ändern? zb: wenn im RichEdit text "text" steht soll er "text" mit "Hallo" ersetzen.



  • Hi!

    Guck dir mal von der Richedit "SelText" an 🙂



  • Bei den Examples gibt es ein besseres Beispiel. Auch der Umgang mit dem ReplaceDialog wird dort prima erschlossen.


Anmelden zum Antworten