MDI-Anwendung: Editor speichert nur letzte Datei unter anderem Dateinamen ab
-
Ich habe einen kleinen Texteditor als MDI-Anwendung geschrieben. Das Öffnen macht keine Probleme, aber wenn ich mehrere Dateien öffne und z.B. die erste abspeichere, dann wird immer nur die letzte geöffnete Datei unter dem Dateinamen der ersten Datei abgespeichert.
Beispiel:
Datei->Öffnen->probe1.txt
Datei->Öffnen->probe2.txt
Datei->Öffnen->probe3.txt
Datei->Öffnen->probe4.txt
Datei->Öffnen->probe5.txt
Datei->Öffnen->probe6.txtIch verändere die Datei probe1.txt und speichere die Datei ab. Dann öffne ich nochmal die Datei probe1.txt, aber der Inhalt ist der von probe6.txt. Wie kann ich diesen Fehler beheben?
-
Hier kann man dir bestimmt weiterhelfen
-
Was ist denn jetzt wieder an meiner Frage so abwegig? Ich habe die Frage klar und deutlich gestellt.
-
Lass mich Raten (mehr kann man hier auch nicht machen): du Speicherst das das/die Datei-Handle in nur einer globalen variable.
-
Was der freundliche Herr dir damit mitteilen wollte, war wohl: Die wenigsten User hier können hellsehen, also kann dir auch niemand sagen, was du falsch gemacht hast, ohne überhaupt zu wissen, was du gemacht hast.
Mein Vorschlag: Schau dir den Speichern-Vorgang mal im Debugger an, vermutlich hast du die Dateinamen nicht korrekt den einzelnen Dokument-Fenstern zugeordnet oder beim Öffnen weiterer Dateien den Zwischenspeicher mit dem Inhalt der ersten Datei überschrieben.
PS: Machst du das wirklich mit reinen WinAPI-Calls (wenn ja
) oder verwendest du ein GUI-Framework dafür?
-
Ich habe selber ein GUI-Framework geschrieben.
-
kleiner_user schrieb:
Ich habe selber ein GUI-Framework geschrieben.
Na dann sollte es doch für dich eine Kleinigkeit sein herauszufinden, warum dein Editor die falschen Daten speichert

-
kleiner_user schrieb:
Ich habe selber ein GUI-Framework geschrieben.
Und dann fragst du hier nach so Kleinigkeiten? 
-
kleiner_user schrieb:
Ich habe selber ein GUI-Framework geschrieben.
Warum fällt mir dazu geradeein Film von James Dean ein... "Denn sie wissen nicht was sie tun"...

-
Und dann fragst du hier nach so Kleinigkeiten? 
Mal nicht so vorschnell, schließlich wird man seine Augen verdrehen
, wenn man mal sieht, wie der Code geschrieben ist.
Ein Teil der Prozeduren sind Getter/Setter, die anderen sind Eigenschaften. Die Funktionen für die einzelnen Objektklassen sind keineswegs ausgereift und darunter lagern sich garantiert noch unzählige Bugs.
-
kleiner_user schrieb:
Was ist denn jetzt wieder an meiner Frage so abwegig? Ich habe die Frage klar und deutlich gestellt.
Naja. Wir kennen deinen Code nicht, woher sollen wir also wissen wo der Fehler in deinem Code ist.
Ich kann nur versuchen zu raten: vermutlich holst du dir beim Speichern den Text aus dem falschen EDIT Control. Was du dabei falsch machen könntest, lässt sich aber echt schwer erraten, ohne dass man Code sieht. Ganz speziell wenn du kein fertiges Framework verwendest, sondern direkt mit WinAPI arbeitest. Es gibt halt 100 Möglichkeiten wie man sowas programmieren kann, und bei jeder bieten sich verschiedene Fehler an die man machen könnte.
-
kleiner_user schrieb:
Die Funktionen für die einzelnen Objektklassen sind keineswegs ausgereift und darunter lagern sich garantiert noch unzählige Bugs.
Wenn du auf der Suche nach Bugs bist (und hier hast du anscheinend einen gefunden), hilft dir sicher der Debugger - oder eine Dose Insektenspray
Wenn du von uns Hilfe erwartest, mußt du auch etwas Code vorweisen.
-
Hier ist der Downloadlink zu meiner Klassenbibliothek, wobei sich der MDI-Texteditor im Verzeichnis "mditextedit (fehlerhaft)" befindet.
Falls ihr Visual C++ verwendet, könnte es vielleicht zu einigen kleineren Fehlern beim Kompilieren kommen, da meine Klassenbibliothek in C++ Builder geschrieben worden ist.
-
Das Beispielprogramm "Quiz" basiert noch auf einer älteren Version, demzufolge ist es nicht kompilierbar. Der Texteditor ist jedoch kompilierbar.