★ APPLICATIONS ★ PROGRAMMATION ★ VEREINFACHTE BENUTZERFÜHRUNG: EINE SAMMLUNG VON HILFSPROGRAMMEN ★![]() |
| Sammlung von Subroutinen (Schneider CPC-Welt) | Applications Programmation |
Wer hat bei längerer Arbeit an seinem CPC noch nie neidisch auf Rechner wie Atari ST oder Commodore Amiga geschaut, die sich sehr einfach mit der Maus bedienen lassen, ohne daß man komplizierte Tastenkombinationen auswendig wissen muß, um das gewünschte Ergebnis zu erzielen? Die Lösung für dieses Programm hat unser Leser Andreas Regul gefunden: Das Programm Vereinfachte Benutzerführung stellt in Unterprogrammen verschiedene Funktionen zur Verfügung, die man in eigene Programme einbauen kann. Achtung: Das abgedruckte Listing stellt kein vollständiges Programm dar, sondern dient lediglich als Demo-Version. Das Programm ist vollständig in BASIC geschrieben, damit auch Anfänger die einzelnen Unterprogramme leicht ihren Bedürfnissen anpassen können. Trotzdem ist die Arbeitsgeschwindigkeit durchaus ausreichend; es entstehen beim Ausführen der Funktionen keine langen Wartezeiten.
Bei allen Unterprogrammen werden kaum Tastatureingaben verlangt, da sich die meisten Funktionen über einen Pointer (Pfeil), der mit den Cursortasten gesteuert wird, bedienen lassen. Die Unterprogramme finden sich bei den Zeilennummern 100 bis 1800, die in 100er-Schritten programmiert sind. Man sollte sich vor dem Abtippen genau die Beschreibung durchlesen; für die richtige Anwendung sind einige Angaben unerläßlich. „Vereinfachte Benutzerführung” läuft auf allen drei Schneider-Computern. Nun zu den einzelnen Funktionen: Ab Zeile 100 steht das Programm „Meniipunkt ausgeben ”. Die Variable n muß übergeben werden. Hier wird in der Kopfzeile ein Text ausgegeben, der in der Variablen t$(n) stehen muß. Wie alle anderen Texte muß auch dieser in Datazeilen ab 60000 abgelegt sein. ‘n‘ ist die Nummer der Feldvariablen t$(). Zeile 200 enthält „Name und Datum eingeben ”. Die zu übergebenden Variablen sind x und y. In einem Fenster müssen der Name des Anwenders und das Datum eingegeben werden. Das Fenster wird dann an der Position x/y ausgegeben. Das Datum muß immer zehn Zeichen lang sein, also das Format TT.MM.JJJJ haben. Es erscheint daraufhin zusammen mit dem entsprechenden Wochentag, der vom Programm selbständig ermittelt wird, in der Kopfzeile. Nach einem Return ins Hauptprogramm steht der Name in der Variablen n$ und das Datum in d$. Ab Zeile 300 steht „Fenster ausgeben ”. Die zu übergebenden Variablen sind n,x, y,xb und yb. Auf dem Bildschirm wird ein Fenster an der Position x/y mit der Länge xb und der Höhe yb ausgegeben, xb und yb bezeichnen die frei beschreibbare Fläche innerhalb der Randlinien. Die Kopfzeile kommt noch hinzu. In der Variablen n steht die Textnummer, die diesmal in der Kopfzeile dieses Fensters ausgegeben wird. Ab Zeile 400 findet man das Unterprogramm „Textfenster ausgeben ”. Es müssen die Variablen n,nt,x und y übergeben werden. Wiederum wird ein Fenster an der Position x/y ausgegeben, das in der Kopfzeile den Text der Textvariablen t$(n) enthält. Im Fenster selbst erscheint der Text aus der Variablen t$(nt). Dieser Text kann auch in zwei Zeilen aufgeteilt werden, indem man an der beabsichtigten Trennstelle das Malzeichen “*” einfügt. Das Unterprogramm „Fehlermeldung” steht an Zeile 500. Die zu übergebenden Variablen sind nt, x und y. Dieses Teilprogramm ist sehr ähnlich zu „Textfenster ausgeben ”. In der Kopfzeile wird aber automatisch der Schriftzug „Fehler...” sichtbar, so daß nur noch der eigentliche Text angegeben werden muß. Die Variable nt bezeichnet die Nummer des Textes aus t$(). Zusätzlich wird eine Warteschleife angesprungen, um den Programmablauf für kurze Zeit zu unterbrechen. Durch einen beliebigen Tastendruck kann man das Programm aber auch sofort fortsetzen, x und y geben wieder die Textcursorposition für die Ausgabe an. Ab Zeile 600 befindet sich das Unterprogramm „Fragestellung “, für das die Variablen c, nt, x und y übergeben werden müssen. Auf dem Bildschirm erscheint nun ein Fenster an der Position x/y mit dem Schriftzug “Frage...” in der Kopfzeile und dem Text der Variablen t$(nt). Außerdem erscheinen zwei Kästchen für die Auswahl von Ja und Nein. Mit dem Pointer kann man nun über das entsprechende Kästchen fahren und mit Copy bestätigen. Auf welchem Kästchen der Pfeil bei der Anwahl dieser Frage steht, läßt sich bereits vorher bestimmen: Beim Druck von TAB wird die Position gespeichert, auf der der Pfeil im Augenblick steht. Bei der nächsten Anwahl der Frage wird automatisch wieder diese Position eingenommen. Dies kann zum Beispiel dann sehr nützlich sein, wenn die Sicherheitsabfrage vor einem Löschvorgang gestellt wird. Nach dem Rücksprung ins Hauptprogramm steht in der Variablen e der Wert 1, wenn ja gewählt wurde, 0, falls nein gewählt wurde und -1, wenn vorzeitig mit der Enter-Taste ins Hauptprogramm zurückgesprungen wurde, ohne eine Wahl getroffen zu haben. Ab Zeile 700 befindet sich das Unterprogramm „Menüsteuerung “, welches die Variablen c, n, a, e, x und y benötigt. Auf dem Bildschirm wird ein Menü ausgegeben, welches in der Kopfzeile den Wert der Variablen t$(n) enthält und die Texte von t$() von a bis e darstellt. Ein bestimmter Menüpunkt läßt sich mit der TAB-Taste festlegen. Diese Werte werden in der Variablen pw$ zusammengefaßt, die am Anfang des Programms mit Nullen gefüllt wird. Mit der Enter-Taste kann auch ohne Wahl eines Menüpunktes ins Hauptmenü zurückgesprungen werden. In diesem Fall enthält die Variable e den Wert —1, ansonsten wird die Position des entsprechenden Menüpunktes in e abgelegt. Das Menüfenster wird an der Position x/y ausgegeben. Ab Zeile 800 steht dann das Unterprogramm „Pfeilsteuerung “, für das die Variablen xc und yc übergeben werden müssen. An der Grafikcursorposition xc/yc wird der Pointer ausgegeben und kann dann beliebig mit den Cursortasten auf dem Bildschirm bewegt werden. Mit TAB Enter oder Copy wird ins Hauptmenü zurückgesprungen. Bei Enter enthält die Variable e den Wert -1, bei TAB den Wert -2 und bei Copy enthalten xe und ye die Textcursorposition des Pointers. Das Unterprogramm „Inhaltsverzeichnis” ab Zeile 900 dürfte hauptsächlich für Diskettenbesitzer interessant sein, da es ein Inhaltsverzeichnis der Diskette im Laufwerk A zusammenstellt. Es müssen die Variablen a$, b, x und y übergeben werden. In der Variablen a$ kann ein bestimmter Filetyp eingefügt werden, also zum Beispiel “BAS” oder “TXT ”. Wenn a$ also “BIN” enthält, so werden nur alle Binärdateien aufgelistet. Die Anzahl der Buchstaben, die übernommen werden, kann ebenfalls festgelegt werden. Die Variable b enthält dann diese Anzahl. Das Inhaltsverzeichnis wird an der Position x/y ausgegeben, wenn x größer als Null ist; ansonsten wird es als Ausgabe auf dem Bildschirm zusammengestellt. Nach Beendigung dieses Unterprogramms enthält die Feldvariable d$() die Dateinamen und md die Menge der Dateien. Bei der Veränderung des Programms — insbesondere bei der Verlegung von HIMEM - kann es nötig werden, die Werte für die Speicherstellen in der FOR...NEXT Schleife zu ändern. Mit dem Unterprogramm „Datei auswählen “, das ab Zeile 1000 erscheint und für das die Variablen n, b, x und y übergeben werden müssen, werden, wenn schon ein Inhaltsverzeichnis angelegt worden ist, die Dateien in einem Fenster an der Position x/y sichtbar, die daraufhin mit dem Pointer aufgewählt werden können. Nach dem Rücksprung zum Hauptprogramm enthält die Variable e die Nummer der Datei. Mit Enter kann ins Hauptprogramm zurückgesprungen werden, ohne daß eine Datei ausgewählt werden muß. Ab Zeile 1100 steht das Unterprogramm „Transparent ein “, das keine Variablen benötigt. Mit dieser Funktion wird der Transparentmodus eingeschaltet und die Ausgabe von Texten bleibt auf Grafikcursorausgabe eingestellt (siehe TAG-Funktion unter BASIC). Das Unterprogramm „Transparent aus” ab Zeile 1200 stellt das Gegenteil dazu dar. VERNÜNFTIGE KENNZEICHNUNG DER UNTERPROGRAMME Ab Zeile 1300 findet man das Unterprogramm „Warteschleife “, das die Variable p benötigt. Es wird eine Leerschleife mit p-Durchgängen ausgeführt. Zwischendurch kann aber jederzeit mit einer beliebigen Taste ins Hauptprogramm gesprungen werden. Mit dem Unterprogramm „Farbwerte ändern” ab Zeile 1400 — es benötigt die Variablen c, x und y — können die vorher festgelegten Farben verändert werden. Die Grundwerte sind 13 für Hintergrund, 0 für Schrift und 10 für den Rand. Die Feldvariable f() enthält die entsprechenden Werte. Das Fenster wird wie üblich an der Position x/y ausgegeben. Ab Zeile 1500 steht das Unterprogramm „Anschlag ändern ”. Die zu übergebenden Variablen sind c, x und y. Mit dieser Funktion kann die Anschlagwiederholung und die Wartezeit vor der Wiederholung eingestellt werden. Die entsprechenden Werte werden in der Feldvariablen sp() festgehalten. Mit dem Unterprogramm „Diskettenlaufwerk wählen” kann das Laufwerk gewählt werden. Es kann zwischen A und B gewählt werden. Die Wahl ist dann in der Variablen lf$ gespeichert. Das Programm „Usernummer ändern “,-ab Zeile 1700., macht-genau das, was der Name sagt. Die Variable ur enthält dann die Nummer. Ab Zeile 1800 steht das Unterprogramm „Druckart ändern “, für das die Variablen c, x und y übergeben werden müssen. Mit dieser Funktion können die verschiedenen Schriftarten des Druckers gewählt werden. Das Programm ist für den DMP-2000 geschrieben, kann aber leicht an andere Drucker angepaßt werden. Alle eingestellten Druckersequenzen sind in der Variablen dr$ zusammengefaßt. Wenn nun vor dem Druck dieses Strings mit print#8,dr$ übergeben wird, werden alle folgenden Zeichen in der entsprechenden Druckart ausgedruckt. Bei den letzten fünf Programmen ist die Speicherung einer primären Position mittels der TAB-Taste möglich. Ab Zeile 10000 steht das Unterprogramm „Symbol-Definitionen “, in dem sich die deutschen Sonderzeichen definieren lassen. Das Programm darf nur einmal durchlaufen werden. Ab Zeile 10200 werden die Variablenfelder dimensioniert und Werte zugeordnet. Die Textdatei wird aus den Datazeilen ab 60000 gelesen. In diesen Datazei-len müssen alle Texte, die später einmal ausgegeben werden sollen, abgelegt werden. Am Ende von Zeile 65000 muß der Wert —1 stehen, damit der CPC das Ende der Daten erkennt.
|