Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vereinfachen von Quellcode? (https://www.delphipraxis.net/37926-vereinfachen-von-quellcode.html)

Nisbo 26. Mär 2006 18:23

Re: Vereinfachen von Quellcode?
 
nee das geht auch nicht genau wie bei deinem Problem damals was ich gerade gefunden hatte :D ;)
http://www.delphipraxis.net/internal...ct.php?t=46333

wie hast du das denn da gelöst gehabt ?

SynEdit1.BeginUndoBlock;
// ...
SynEdit1.EndUndoBlock;

geht auch nicht

genau wie

Form1.SynEdit1.UndoList.BeginBlock;
Form1.SynEdit1.Text := StringReplace(Form1.SynEdit1.Text, Edit1.Text, Edit2.Text, [rfReplaceAll]);
Form1.SynEdit1.UndoList.EndBlock;

aus deinem anderen thread

Matze 26. Mär 2006 18:26

Re: Vereinfachen von Quellcode?
 
Zitat:

Zitat von Nisbo
wie hast du das denn da gelöst gehabt ?

Gar nicht. ;)

Nisbo 26. Mär 2006 18:29

Re: Vereinfachen von Quellcode?
 
also mit anderen worten ich kann meine undo-funktion vergessen ?

ich habe hier schon nen 52-seitiges undo turt gesehen, aber beim besten willen das ist mir zu lang, muß doch irgendwie einfacher gehen :D

C.Schoch 26. Mär 2006 19:10

Re: Vereinfachen von Quellcode?
 
Schau mal hier:
UndoRedo
vieleicht hilft dir das weiter.

Nisbo 26. Mär 2006 19:13

Re: Vereinfachen von Quellcode?
 
das ist genau dieses 52-seitige teil was ich meinte :D

hatte ich inzwischen auch schonmal versucht zu installieren, aber trotz keiner fehlermeldung gibt es keine komponenten
die demos die es da gibt kann mann zwar öffnen aber da sind dann ur ca 20 zeilen code drinn und ohne form

ist also nichts für mich sondern wohl eher was für hardcode-delphi-schrauber :D

Nisbo 26. Mär 2006 19:57

Re: Vereinfachen von Quellcode?
 
habe jetzt eine notlösung gefunden wie man ein einfaches undo / redo hinbekommt, ist aber nicht wirklich zufriedenstellend :(

man nehme noch 2 zusätzliche SynEdits und setze diese auf visible := false
diese werden dann als zwischenspeicher verwendet

mit den undo und redo buttons wird dann dieser code ausgeführt

Delphi-Quellcode:
// Undo
procedure TForm1.ToolButton7Click(Sender: TObject);
begin
  SynEdit3.Lines := SynEdit1.Lines; // aktueller text sichern
  SynEdit1.Lines := SynEdit2.Lines; // backup einfügen
  SynEdit2.Lines := SynEdit3.Lines; // backup durch aktuellen text ersetzen

  ToolButton7.enabled := false;
  ToolButton9.enabled := true;
end;

// Redo
procedure TForm1.ToolButton9Click(Sender: TObject);
begin
  SynEdit3.Lines := SynEdit1.Lines; // aktueller text sichern
  SynEdit1.Lines := SynEdit2.Lines; // backup zurückschreiben
  SynEdit2.Lines := SynEdit3.Lines; // backup durch aktuellen text ersetzen

  ToolButton7.enabled := true;
  ToolButton9.enabled := false;
end;
die beiden buttons immer abwechselnd enabled oder disabled

beim schreiben neuer zeilen wird vor den einfügen immer

SynEdit2.Lines := SynEdit1.Lines;

gemacht um den aktuellen zwischenspeicher zu lesen sowie der redobutton aus und der undo button eingeschaltet

ToolButton9.enabled := false;
ToolButton7.enabled := true;

vielleicht hilft es ja einen der das topic durch die suche findet ;)

Elvis 26. Mär 2006 20:10

Re: Vereinfachen von Quellcode?
 
Zitat:

Zitat von Nisbo
man nehme noch 2 zusätzliche SynEdits und setze diese auf visible := false
diese werden dann als zwischenspeicher verwendet

Du hast nicht zufällig vorher mit VisualBasic "programmiert"? Ich hätte schon nach deinem vorherigen Beitrag eine mittelgroße Summe darauf gewettet, jetzt bin ich mir absolut sicher. :wall:

*blacklist vorkramt*

xaromz 26. Mär 2006 20:14

Re: Vereinfachen von Quellcode?
 
Hallo,

ich hab hier vor Kurzem einen Artikel über das Realisieren von Undo/Redo geschreiben. Vielleicht ist das ja was.

Gruß
xaromz

Matze 26. Mär 2006 20:18

Re: Vereinfachen von Quellcode?
 
Zitat:

Zitat von Nisbo
habe jetzt eine notlösung gefunden wie man ein einfaches undo / redo hinbekommt, ist aber nicht wirklich zufriedenstellend :(

Dies lasse ich mal unkommentiert stehen. ^^

Als Zwischenspeicher könntest du auch zwei TStringLists nutzen, wenn du das so lösen magst.

Nisbo 26. Mär 2006 20:24

Re: Vereinfachen von Quellcode?
 
Zitat:

Zitat von Elvis
Zitat:

Zitat von Nisbo
man nehme noch 2 zusätzliche SynEdits und setze diese auf visible := false
diese werden dann als zwischenspeicher verwendet

Du hast nicht zufällig vorher mit VisualBasic "programmiert"? Ich hätte schon nach deinem vorherigen Beitrag eine mittelgroße Summe darauf gewettet, jetzt bin ich mir absolut sicher. :wall:

*blacklist vorkramt*

nein mit vB hatte ich nichts zu tun, nur mal mit Lazarus aber das ist ja fast wie Delphi :D
normalerweise programmiere ich in php in verbindung mit mysql

aber was hat das jetzt mit den zwischenspeichern zu tun ?
var tttt : tstrings;

hat es nicht getan, deswegen habe ich reale SynEdits genommen :D

@ xaromz

thx ich schaue mal

@ Matze

da stande ich dann wohl neben mir, hatte nicht TStringLists versucht sondern tstrings und das hatte nicht funktioniert


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Seite 2 von 2     12   

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