problem mit richedit wenn ich was suche



  • Hallo.
    ich habe eine TRichEdit und wenn ich dort was suche mit hilfe des finddialoges, funktioniert es auch. ich habe es auch geschafft, das der "cursor" immer mitzieht sprich das automatisch zum gesuchten wort ggf. gescrollt wird. das wird dann auch selektiert angezeigt. doch dann ist die richedit mit dem focus versehen. sprich wenn ich dann wieder enter drücke geht das enter nicht an den finddialog sodass ich ihn wieder anklicken muss.

    jetzt habe ich das mit SetForegroundWindow unterbunden nach dem enterdrücken wird runtergescrollt und das suchendialogfenster hat zwar den focus - aber die markierung in der richedit ist weg.

    habt ihr dafür eine lösung?

    int FoundAt, StartPos, ToEnd;
            if (Ausgabe->SelLength)
                    StartPos = Ausgabe->SelStart + Ausgabe->SelLength;
            else
                    StartPos = 0;
            ToEnd = Ausgabe->Text.Length() - StartPos;
            FoundAt = Ausgabe->FindText(Suchen->FindText, StartPos, ToEnd, TSearchTypes()<< stMatchCase);
            if (FoundAt != -1)
            {
    
    //hierum geht es eigentlich
                    Ausgabe->SetFocus();
                    Ausgabe->SelStart = FoundAt;
                    Ausgabe->SelLength = Suchen->FindText.Length();
                    Ausgabe->Perform( EM_SCROLLCARET,0,0);
                    SetForegroundWindow(FindWindow(0, "Suchen"));
            }
    


  • Ausgabe->HideSelection = false;

    Wie wäre es damit?
    Benutz in Zukunft die Hilfe 🙄


Anmelden zum Antworten