RichEdit Undo Funktion ?



  • Hallo
    Die Undo Funktion RichEdit->Undo() funktioniert merkwürdig. Nur wenn ich eine ganze Zeile lösche funktioniert es, obwohl RichEdit->CanUndo true ist funktioniert es nicht bei einzelnen Zeichen bzw. wenn ich mit Strg+V arbeite. Ist das normal ?
    Nächste Frage, gibt es eine Möglichkeit die Funktionen Strg+C, Strg+V, TAB ! ... von Windows in RichEdit zu übernehmen ?
    Noch ein Problem: Wenn ich etwas einfüge über Clipboard wird es doppelt eingefügt, im Clipboard ist es aber nur einmal und KeyPress wird auch nur einmal ausgeführt.

    if(Key == 22)
          {
             if(Clipboard()->HasFormat(CF_TEXT))
                {
                   RichEdit1->SelText = Clipboard()->AsText;
                }
          }
    


  • Hallo

    Die Undo Funktion RichEdit->Undo() funktioniert merkwürdig. Nur wenn ich eine ganze Zeile lösche funktioniert es, obwohl RichEdit->CanUndo true ist funktioniert es nicht bei einzelnen Zeichen bzw. wenn ich mit Strg+V arbeite. Ist das normal ?

    Nein das ist nicht normal. Wie sieht dein Quellcode aus?

    Nächste Frage, gibt es eine Möglichkeit die Funktionen Strg+C, Strg+V, TAB ! ... von Windows in RichEdit zu übernehmen ?

    Tabulatpr must du nur drücken, dann wirds im RichEdit dargestellt (falls WantTabs auf true ist).
    Der Rest ist nicht mal darstellbar, sondern sind Steuersignale. Wie sollen die in ein RichEdit? (Außer ausschreiben)

    Noch ein Problem: Wenn ich etwas einfüge über Clipboard wird es doppelt eingefügt, im Clipboard ist es aber nur einmal und KeyPress wird auch nur einmal ausgeführt.

    TRichEdit hat bereits (wie viele andere Controls aus) eine Behandlung für Copty&Paste. Du brauchst keine eigene Behandlung dafür. Denn durch deine Behandlung wird das zweite mal reinkopiert.

    bis bald
    akari



  • oh danke
    Want Tabs und copy&past habe ich übersehen, hatte es selbst programmiert, deshalb die Frage.
    Zu Undo, also laut Beschreibung geht das von allein. das einzige was ich gemacht habe ist im mainmenue ein undo item:
    bei OnClick:

    RichEdit1->Undo();
       RichEdit1->ClearUndo();
    

    und beim über geordneten OnClick

    if(RichEdit1->CanUndo) Undo1->Enabled = true;
       else Undo1->Enabled = false;
    

    natürlich nach dem laden einer File auch RichEdit1->ClearUndo();



  • ich habe es gefunden, was die Undo Funktion so reagieren läßt. Ich habe bei dem OnChange Ereigenis der RichEdit Komponente einen Parser(Highlighting) für die jeweilige Zeile laufen. wenn ich es deaktiviere geht es.
    Gibt es eine Möglichkeit die UndoFunktion zu blockieren (abzuschalten) (während des parsens) ?


Anmelden zum Antworten