AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SynEdit Undo/Redo

Ein Thema von Matze · begonnen am 6. Feb 2005 · letzter Beitrag vom 15. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

SynEdit Undo/Redo

  Alt 6. Feb 2005, 23:26
Hi!

Im SynEdit kann man ja per

SynEdit1.Undo; und

SynEdit1.Redo; Die letzte Aktion rückgängig machen oder wiederholen. Dies funktioniert jedoch nur, wenn ich direkt im SynEdit schreibe. Füge ich Code per Button o.Ä. ins SynEdit, dann geht das nicht.

Wie kann ich das Problem umgehen? Manuell alles mitschreiben, was verändert wurde, halte ich für übertrieben.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: SynEdit Undo/Redo

  Alt 7. Feb 2005, 07:01
Zitat:
Die letzte Aktion rückgängig machen oder wiederholen. Dies funktioniert jedoch nur, wenn ich direkt im SynEdit schreibe. Füge ich Code per Button o.Ä. ins SynEdit, dann geht das nicht.
Bei mir geht's auch dann. Wie fuegst du z.B Text ein?
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: SynEdit Undo/Redo

  Alt 7. Feb 2005, 09:57
Zitat von toms:
Bei mir geht's auch dann. Wie fuegst du z.B Text ein?
Mit StringReplace oder auch so:

Form1.SynEdit1.SelText := Edit2.Text;
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: SynEdit Undo/Redo

  Alt 7. Feb 2005, 10:05
StringReplace werden anscheinend nicht in die Undo, Redo Liste genommen.
Nur was der User macht (Copy, Paste, Cut...)

Vielleicht kann man sich aber in die Undo, Redo Listen einklinken?
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#5

Re: SynEdit Undo/Redo

  Alt 7. Feb 2005, 10:08
Ja, das geht glaube ich mit (ob die Befehle genauso sind, weiss ich nicht)

Delphi-Quellcode:
SynEdit.UndoList.BeginBlock;
// Text ändern...
SynEdit.UndoList.EndBlock;
mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: SynEdit Undo/Redo

  Alt 7. Feb 2005, 10:35
Spitze, vielen Dank, es klappt einwandfrei.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: SynEdit Undo/Redo

  Alt 8. Feb 2005, 11:11
Hmm, geht doch nicht einwandfrei.

Es geht nur für
Form1.SynEdit1.SelText := Edit2.Text; So geht es nicht:
Delphi-Quellcode:
  Form1.SynEdit1.UndoList.BeginBlock;
  Form1.SynEdit1.Text := StringReplace(Form1.SynEdit1.Text, Edit1.Text, Edit2.Text, [rfReplaceAll]);
  Form1.SynEdit1.UndoList.EndBlock;
Woran liegt das?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: SynEdit Undo/Redo

  Alt 8. Feb 2005, 11:40
Zitat von Matze:
...Woran liegt das?
Hai Matze,
ich habe mir mal eben den QuellCode angeschaut. Es scheint so das z.B. bei SelText intern ein BeginUndoBlock; aufgerufen wird. Bei Zugriff auf .Lines.Text geschieht dies leider nicht.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: SynEdit Undo/Redo

  Alt 8. Feb 2005, 11:41
Vielen Dank für die Erklärung, weißt du auch, wie man das umgehen kann?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: SynEdit Undo/Redo

  Alt 9. Aug 2005, 01:40
Moin! Ich pushe mal nach der doch recht kurzen Zeit.

Ich bin nun wieder auf das Problem gestoßen und es ist tatsächlich so, wie Sharky es geschrieben hat. UndoList.BeginBlock; und UndoList.EndBlock; reagieren wirklich nur auf SelText.

Wenn ich sonst etwas einfüge, ohne, dass Text markiert war, funktioniert Undo nicht mehr. Ich dachte schon, ich markiere den Buchstaben neben dem Caret intern, ändere das, wobei der Buchstabe überschrieben wird und anschließend füge ich diesen wieder ein. Nur ist das für mich eine zu schlampige Lösung, die ich nicht verwenden möchte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:52 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