Technische Tips & Tricks: QuickAdress ) B. Kühnast Richtig gelesen - diesmal wird das Pro- jekt beendet. Da es diesmal auch in der lauffähigen Version auf der Rückseite ist, findet ihr die Bedienung in einer separaten Datei. Jetzt zur Programmerläuterungen. Ich habe alle Routinen aus den anderen Tei- len in die Datei QA.LIB zusammengefaßt. Die Sortierroutine mußte ich noch mal bearbeiten, sie hört jetzt auf, sobald sie an die Endadresse gekommen ist. Vorher stoppte sie bei einer leeren Stelle. Außerdem mußte ich die Loesch- Prozedur ändern. Statt nach Löschen ei- nes Satzes den nächsten Satz zu prüfen (der an die gleiche Stelle rückt), ging die Routine einen Eintrag weiter (und damit auf den ÜBERNÄCHSTEN Satz). Die Datei QA.QIK enthält quasi das drumherum. Ich habe dem ganzen ein Maus-Interface verpaßt. Laßt euch nicht von der Größe der Datei täuschen, das meiste ist nur zum Bildschirmaufbau. Es gibt 2 Bildschirme: Das Hauptbild, daß etwa so aussieht: --------------------------------------- Eingabe Ändern Ordnen Löschen Druck End ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (21 Zeilen mit Adressen) vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --------------------------------------- und das Bild zum Eingeben und Ändern. Zuerst liest das Programm den Zeichen- satz (den ich auch etwas ändern mußte) und eventuell vorhandene Adressen ein. Außerdem wird das Bild aufgebaut und der Player initialisiert. Die eigentli- che Maussteuerung besteht aus der Schleife mit dem MOUSE-Befehl und der Abfrage der Knopfes. Das ganze geht so lange, bis die EX-Variable gesetzt wird. Die Bewegung des Zeiger übernimmt der VBI, hier wird der Player neu ge- setzt. Die Befehle werden in der Menü-Routine abgefragt. Grundsätzlich wird nach Zeilen unterschieden. Die erste Zeile (Mousey<8) enthält die Befehle. Welcher Befehl es ist, wird über den Mousex-Wert abgefragt. Die Ausführung der Befehle ist im Prinzip immer gleich: Erst wird der Bildschirm aufgebaut, falls nötig, dann der Befehl ausgeführt und der Bildschirm wieder hergestellt. Auf die Befehle will ich hier nicht einzeln eingehen, da sie bereits in vorherigen Teilen besprochen wurden. Die zweite Zeile sorgt für das zurück- blättern in den Daten, die letzte Zeile dient zum vorblättern. Die Daten-Zeilen: Wenn man sie an- klickt, setzt oder löscht man die Mar- kierung. Hat man aber vorher den Än- dern-Befehl angewählt, wurde die Aend- flg-Variable gesetzt. Der nächste Da- tensatz, der angewählt wird, kann dann geändert werden. Wird aber ein anderer Befehl (außer dem Up- oder Down-Balken) angewählt, wird die Variable gelöscht. Der einzig neue Befehl ist ENDE. Hier wird die EX-Variable gesetzt, so daß die Mouse-Schleife abgebrochen wird. Dann werden die Daten gespeichert. Der Befehl POKE(580,1) bewirkt, daß nach RESET neu gebootet wird. So, damit ist dieses Projekt beendet. Verbesserungen an dem Programm sind erwünscht (z. B. könnte man die Maus- Taste entprellen). Falls ihr auch ein größeres Programmprojekt in Arbeit habt, hier ein paar Tips, die mir bei QA geholfen haben: 1. Arbeite modular. D. h., daß das Programm soweit möglich aus einzelnen Modulen besteht, die über ein möglichst kurzes Haupt- programm aufgerufen werden. Soweit möglich, sollten die Module einzeln getestet werden. Das hilft später bei der Fehlersuche. 2. Schriftliche Vorarbeit ist nötig. Ohne Notizen läuft nichts. Zumin- dest die Datenstruktur, das Dateiformat und den groben Programmablauf sollte man sich vorher überlegen. 3. Achte auf die Speicherbelegung. Es kann relativ leicht passieren, daß Daten sich im Speicher gegenseitig überschreiben oder ihr nicht mehr wisst, was wo ist. Hier noch kurz die Speicherbelegung (grob): $5000 - $7000 Programm $7000 - $7400 Zeichensatz $7400 - $7500 Playerbereich $7500 Playerdaten $7600 - $B000 Datenbereich CU! Bis nächsten Monat dann !!!