AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Rückgängigmachen von Textformatierungen im RE verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Rückgängigmachen von Textformatierungen im RE verhindern

Ein Thema von Culxxaw · begonnen am 21. Aug 2010 · letzter Beitrag vom 23. Aug 2010
Antwort Antwort
Culxxaw

Registriert seit: 21. Okt 2008
40 Beiträge
 
#1

Rückgängigmachen von Textformatierungen im RE verhindern

  Alt 21. Aug 2010, 18:19
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
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

AW: Rückgängigmachen von Textformatierungen im RE verhindern

  Alt 21. Aug 2010, 19:29
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;
Thomas
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Rückgängigmachen von Textformatierungen im RE verhindern

  Alt 22. Aug 2010, 11:39
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...
  RichEdit.SelAttributes.Protected:=true;
  Mit Zitat antworten Zitat
Culxxaw

Registriert seit: 21. Okt 2008
40 Beiträge
 
#4

AW: Rückgängigmachen von Textformatierungen im RE verhindern

  Alt 23. Aug 2010, 12:21
Vielen Dank, Leute!

Die Lösung von toms war genau das, was ich gesucht hatte.
Dennoch danke an omata. Der Tipp ist praktisch.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz