Menüs, Fehler, aber schlussendlich Erfolg

Bei der Version 0.3 lief nicht alles nach Plan. Das erste Menü war zwar schnell eingebaut, aber danach war irgendwie der Wurm drin.

Erstes starten von phED, läuft. Beim nächsten Mal dann ein Absturz, der auch gleich das ganze Gerät abgeschossen hat. Prima! Nur, wo liegt der Fehler?

Bedingt durch Zeitmangel musste ich dann das erste Video unverrichteter Dinge beenden. Eine Woche musste vergehen und siehe da, einfach einmal mit dem Debugger drüber, der in StormC echt super funktioniert und schon findet man den Fehler. Wenn man ein Objekt anlegt, dann sollte man das am Ende auch schliessen! Schliesslich sind wir anständige Programmierer und denken daran, dass das AmigaOS keinen Speicherschutz hat, welcher uns das Leben hätte erleichtern können. Das hat aber dann wieder den Vorteil, kein Speicherschutz, dann muss man sich um solche Fehler auch kümmern!

Gut. Weiter also mit den Menüs und da wir zwischenzeitlich auch die ASL-Requester behandelt haben, können wir die auch gleich mit einbauen und siehe da, am Ende sieht die Sache so aus:

Erledigt in Version 0.3

  • Fehler aus Video 0.3-1 behoben
  • Menü “Projekt” hinzugefügt
  • ASL Requester implementiert
  • Funktion zu Menüpunkt “Neu” implementiert
  • Funktion zu Menüpunkt “Laden …” implementiert
  • Funktion zu Menüpunkt “Speichern” implementiert
  • Funktion zu Menüpunkt “Speichern als …” implementiert
  • Funktion zu Menüpunkt “Beenden” implementiert

Planung für Version 0.4

  • Titel dem Dateinamen anpasst
  • Bei Änderung “*” hinter den Dateinamen
  • Menüpunkt für Zeilennummer einfügen

Wer das Projekt clonen will der schaut einfach auf dem Git-Server vorbei.

Fehlerkorrektur, Requester und einiges, was gar nicht hin sollte

Mit Version 0.2 haben wir wieder ein paar Fortschritte erzielt. So haben wir zum Beispiel beim laden und speichern jetzt dafür gesorgt, dass die Variablen korrekt terminiert werden. Darüber hinaus, haben wir auch Variablen raus geworfen, die wir nicht gebraucht haben und noch ein paar Kleinigkeiten. Der Optimierung/Verbesserung, wie sie für 0.2 angestrebt war, haben wir damit also Rechnung getragen.

Als Ziel bleibt Optimierung/Verbesserung, oder kurz Fehlerkorrektur, bestehen. Es gibt immer etwas zu verbessern, oder Fehler auszumerzen, die sich erst zeigen werden.

Grosser Punkt war natürlich das Requester am Ende. Entdeckt phED beim beenden, dass der Text verändert wurde, bekommt man dies nun gemeldet, inklusive von drei Auswahlmöglichkeiten. Man kann speichern, nicht speichern, oder den Vorgang abbrechen. Das haben wir getestet und es funktioniert soweit tadellos.

Dann noch der Dateiname im Titel. Wenn wir also phED mit einem Parameter starten und damit eine Datei zum editieren öffnen, wird der Dateiname nun im Titel angezeigt. Startet man phED leer, steht banal nur phED da.

Einzig das markieren im Titel hinter dem Dateinamen mittels eines * bei verändertem Text hat nicht mehr geklappt. Ich habe es zwar schon eingebaut, aber es funktioniert nicht. Da muss ich mich noch genauer schlau machen.

Wer es sich anschauen, oder damit rum spielen will, ihr findet das Projekt auf meinem Git-Server.

Wie geht es weiter?

Für Version 0.3 stecke ich folgende Ziele:

  • Optimieren, verbessern, Fehlerkorrektur (insofern etwas auffällt)
  • Anzeige eines Stern hinter dem Dateinamen, wenn der Text verändert wurde
  • Einführen von Menüs. Laden, speichern, speichern unter, beenden sowie Über
  • Iconifizieren

Fenster, Texteditor, laden und speichern

Es geht los! Das erste Video zur Entwicklung unseres Texteditors ist fertig. Das heisst auch, der Texteditor hat schon Gestalt angenommen. Lasst uns das mal beleuchten.

Also. Die Meisten der Ziele haben wir ja tatsächlich erreicht. Es öffnet sich ein Fenster, darin taucht der Texteditor auf und beim beenden wird gecheckt, ob am Text was geändert wurde. Dazu, wenn der Text geändert wurde, wird er auch gespeichert. Entweder wird die Datei überschrieben, die beim starten von phED angegeben wurde, oder der Text wird als unbenannt.txt gespeichert. Ja, unbenannt, nicht unbekannt! Kleiner, aber feiner Unterschied, wie ihr im Video noch sehen werdet. Dazu kommt dann aber auch noch, dass man als Startparameter eine Datei angeben kann, die dann auch geladen und angezeigt wird. Soweit sind wir also schon weit gekommen, auch wenn noch keine Requester beim beenden drin sind. Das wäre auch ein Ziel gewesen. Aber, kann man mit leben, glaube ich.

Wer das Video schaut wird bemerken, bei mir läuft das überhaupt nicht so rund, wie bei vielen anderen Leuten, die Tutorials zum Thema programmieren machen. Das liegt zum einen daran, dass viele andere Ersteller von Tutorials viel mehr Erfahrung und Übung im programmieren haben, alles im Vorfeld testen und es hinterher einfach noch einmal quasi abtippen, oder sie banal ihre Missgeschicke raus schneiden. Vielleicht wirkt es auch professioneller, wenn der Ersteller alles fehlerfrei und problemlos einfach runter tippt. Trotzdem werde ich jetzt nicht anfangen zu schneiden, so grosse Dinge vorher schon zu testen und ich werde auch nicht über Nacht ein Meister.

Das könnte aber auch einen Vorteil haben! Ich gehe davon aus, viele, die sich dieses Video anschauen und nachmachen wollen, haben nicht mehr Erfahrung als ich. Vielleicht oder wahrscheinlich sogar weniger. Da ist es doch unter Umständen motivierend, wenn man sieht, dass ich mich auch dusselig dran stelle. Letzten Endes ist es nämlich so. Das Ziel ist das Ziel und nicht der Weg! Also jetzt in diesem Fall. Am Ende soll da ein Programm raus kommen, was funktionier und zwar so, wie man es haben will. Wie oft man dabei etwas nachschauen, ausprobieren und dann doch anders machen musste, spielt doch gar keine Rolle. Schlussendlich trägt jeder Fehler dazu bei, mehr Erfahrung zu sammeln, oder?

Wie geht es denn jetzt weiter?

Ursprünglich wollte ich im zweiten Video mit Menüs anfangen. Also den Texteditor mit Grundfunktionen ausstatten. Ein Menü Datei, ein Menü Hilfe usw. Dafür hätte ich dann erst ein entsprechendes Tutorial erstellt.

Da wir aber nicht ganz fertig geworden sind, sieht die Zielsetzung für Version 0.2 wie folgt aus:

  • Optimieren und verbessern (gerne auch Verbesserungsvorschläge von euch!)
  • Requester beim beenden, der nach speichern fragen soll, wenn sich der Text geändert hat.
  • Wenn ein Text geladen wurde, soll der Name vom Text im Titel erscheinen
  • Wenn ein Text geladen und dieser geändert wurde, soll hinter dem Titel ein * erscheinen

Okay. Das sollte ja etwas schneller gehen, als Version 0.1. Auf jeden Fall freue ich mich schon sehr darauf, denn mir hat es bisher echt riesen Spass gemacht, auch wenn nicht immer alles glatt gelaufen ist.

phED Zielsetzung

phED soll ein vollwertiger Texteditor mit möglichst umfangreichen Funktionen werden, den ich während meiner Videos Stück für Stück entwickle.

Idealerweise wird es ein Gemeinschaftsprojekt. Mittels Kommentare könnten Zuschauer das Projekt entsprechend beeinflussen.

Das ganze Projekt wird über GIT versioniert, wobei es natürlich sehr schade ist, dass für das Amiga OS 3.2 kein GIT verfügbar ist. Ich habe die Hoffnung, dass es aber auch irgendwann einen Port für das OS 3.2 geben wird.

Im ersten Video wird es um Version 0.1 gehen. Folgendes soll dabei erreicht werden:

  • Öffnen des Fensters
  • Anzeige des Text-Editors
  • Laden eines Textes mittels Startparameter
  • Prüfung, ob der Text im Editor sich verändert hat beim verlassen
  • Falls sich der Text nicht geändert hat, wird das Programm einfach beendet
  • Falls sich der Text geändert hat, wird nachgefragt, ob der Text gespeichert, nicht gespeichert, oder ob der Vorgang abgebrochen werden soll.
  • Wenn der Text gespeichert werden soll, wird entweder der zuvor geladene Text überschreiben und falls keiner geladen wurde, der Text in die Datei “unbenannt.txt” gespeichert.