Ich habe die Frage nach Undo/Redo 2015 im Zusammenhang mit Richedit-Class1 (Delphi 7) schon einmal gestellt. Nun erneuere ich die Frage für
Class2 oder Class3. Derzeit arbeite ich mit Delphi XE3 oder höher. Dort funktioniert mehrfaches Undo auf Anhieb. Die vergleichbare Redo-Funktion lässt sich jedoch überhaupt nicht compilieren, obwohl sie in der Microsoft-Dokumentation beschrieben ist, siehe:
Bei folgender Befehlsfolge kommt die Compiler-Meldung, dass CanRedo und Redo nicht bekannt sind:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| uses Vcl.StdCtrls procedure TForm1.ReduClick(Sender: TObject); begin if SendMessage(Richedit1.Handle, EM_CANREDO, 0, 0) <> 0 then SendMessage(Richedit1.Handle, EM_REDO, 0, 0); end; |
Tatsächlich nutze ich eine Routine, die in diesem Forum Frühlingsrolle an anderer Stelle für Undo veröffentlich hat. (für mehrere Richedit in der Form)
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.mmiUndoClick(Sender: TObject); begin if FComponent is TCustomEdit then TCustomEdit(FComponent).Undo end; |
Wird Undo jedoch durch Redo ersetzt, so lässt sich auch dieser Code nicht compilieren. Woran könnte dies liegen?