Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Rückgängigmachen von Textformatierungen im RE verhindern (https://www.delphipraxis.net/153945-rueckgaengigmachen-von-textformatierungen-im-re-verhindern.html)

Culxxaw 21. Aug 2010 19:19

Rückgängigmachen von Textformatierungen im RE verhindern
 
Hallo liebe DP-Gemeinde,

wollte fragen, ob es möglich ist die Rückgängig-Funktionalität im Richedit für bestimmte Operationen zu deaktivieren. Ich möchte damit das Rückgängigmachen von Textformatierungen (Text rot machen, fett machen usw.) verhindern.

Habe bereits ein bisschen recherchiert und diesen Artikel gefunden:
Anhalten und Fortsetzen der Rückgängig-Funktionalität im RichEdit 3.0/

Leider weiß ich absolut nicht wie ich das implementieren soll und ob die Richeditkomponente in Delphi überhaupt die ITextDocument-Schnittstelle nutzt...
Falls jemand einen anderen Lösungsansatz kennt wäre ich darüber natürlich auch sehr dankbar.

Danke im Voraus

toms 21. Aug 2010 20:29

AW: Rückgängigmachen von Textformatierungen im RE verhindern
 
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;

omata 22. Aug 2010 12:39

AW: Rückgängigmachen von Textformatierungen im RE verhindern
 
Was willst du genau machen?

Das ein Benutzer einen Text einfügen darf und wenn er diesen formatiert hat, dass dies nicht mehr rückgängig gemacht werden kann?
Oder willst du einen Text einfügen, den der Benutzer nicht verändern darf?

Für Letzters schau dir mal folgendes an...
Delphi-Quellcode:
  RichEdit.SelAttributes.Protected:=true;

Culxxaw 23. Aug 2010 13:21

AW: Rückgängigmachen von Textformatierungen im RE verhindern
 
Vielen Dank, Leute!

Die Lösung von toms war genau das, was ich gesucht hatte.
Dennoch danke an omata. Der Tipp ist praktisch.:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz