Hallo,
Die Undo Funktion deaktivieren kannst du wie folgt, ohne dabei ITextDocument implementieren zu müssen.
Wie man die Undo-Funktion nur für bestimmte Operationen deaktivieren kann, weiß ich leider nicht.
Delphi-Quellcode:
uses
RichOLE,
// von http://tinyurl.com/RichOLE-pas
ComObj;
procedure TForm1.Button1Click(Sender: TObject);
const
tomFalse = 0;
//Prevents Undo and empties buffer.
tomTrue = -1;
//Restarts Undo again.
tomSuspend = -9999995;
//Suspends Undo.
tomResume = -9999994;
//Resumes Undo.
var
RichEditOle: IRichEditOle;
DocDispatch: IDispatch;
Doc: Variant;
begin
if RichEdit_GetOleInterface(RichEdit1.Handle, RichEditOle)
then
begin
OleCheck(RichEditOle.QueryInterface(IDispatch, DocDispatch));
doc := DocDispatch;
doc.Undo(tomSuspend);
end;
end;