Texteditor - Suchen+Ersetzen implementieren
-
Hi
Ich habe unter Borland C++ Builder 6 einen kleinen Texteditor ähnlich dem Windows Editor geschrieben. Leider funktioniert die "Text ersetzten" Funktion nicht. Für einen Profi dürfte es wahrscheinlich kein Problem darstellen mir zu helfen. Es steckt nur ein kleiner Fehler drinn, den ich seit Stunden zu finden versuche.
Hier das Projekt:
http://rapidshare.com/files/9906791/endversion2.zip.htmlFehlerbeschreibung:
Wenn man eine Textdatei öffnet und dann auf Datei-->Ersetzen geht, kann man zwar nach einem Wort suchen. Wenn man das Wort gefunden hat, kann man es aber nur einmal ersetzen. Weitere gesuchte Wörter lassen sich nicht ersetzen."void __fastcall TForm1::SearchReplace1ReplaceDialogReplace(TObject *Sender)"
aus Zeile 206 von "Editor.cpp" wird nie ausgeführt???? - da liegt der Fehler.
Ich weiß aber nicht warum er nicht die 206te Zeile ausführt.Zu öffnen ist das Projekt über "mEditor.bpr"
Vielen Dank schonmal
mfg
Edit:
Bitte aussagekräftige Überschriften wählen. Danke!
-
Das komplette Projekt bereitzustellen ist hilfreich, als Grundlage sollte aber doch hier der entsprechende Codeabschnitt mit entsprechenden Erläuterungen gezeigt werden.
-
der Fehler liegt im SearchReplace1ReplaceDialogReplace, was nie ausgelöst wird, anscheinend ein Fehler in der VCL-Komponente
bau mal in dein Formular einen TReplaceDialog ein und verwende dort die Ereignisse OnFind und OnReplace mit deinem Quellcode, wobei das "SearchReplace1->Dialog" dann durch "ReplaceDialog1" und "SearchReplace1ReplaceDialogFind" durch "ReplaceDialog1Find" ersetzt werden müßte
um den ReplaceDialog aus dem Menü auszuführen mußt du dem entsprechenden Menüpunkt nur folgeden Code zuordnen
ReplaceDialog1->Execute();und schon funktioniert alles so wie gewünscht
-
Linnea schrieb:
der Fehler liegt im SearchReplace1ReplaceDialogReplace, was nie ausgelöst wird, anscheinend ein Fehler in der VCL-Komponente
bau mal in dein Formular einen TReplaceDialog ein und verwende dort die Ereignisse OnFind und OnReplace mit deinem Quellcode, wobei das "SearchReplace1->Dialog" dann durch "ReplaceDialog1" und "SearchReplace1ReplaceDialogFind" durch "ReplaceDialog1Find" ersetzt werden müßte
um den ReplaceDialog aus dem Menü auszuführen mußt du dem entsprechenden Menüpunkt nur folgeden Code zuordnen
ReplaceDialog1->Execute();und schon funktioniert alles so wie gewünscht
Hi
Danke!
so gehts
Der Fehler kam mir schon immer spanisch vor.
mfg