|
|
|
| 26.10.2025 | Archiv # Recherche # Links # Kontakt # Gästebuch # Impressum | |
|
Index Login Die Anzeige des Archivs erfolgt grafisch. Ändern |
GeoCom Workshop #6 - Etwas über Hilfsmittel und DruckerEs geht ans Drucken! ROW 640 BYTEVAR datenpuffer ROW 1920 BYTEVAR treiberpuffer Alles weitere folgt nun ab dem Label r_print zwischen FIRSTMENU und RETURN: Gibt es keine Probleme, wird der Druckertreiber auf dem aktuellen Laufwerk gesucht und initialisiert: Fortgeschrittene können hier soweit eine Ergänzung schreiben, das auf allen aktiven Laufwerken gesucht wird. Dies ist jedoch nicht GEOS-typisch. Eine nähere Ausführung werde ich hierzu nicht machen, da noch die Grundlagen zur Diskettenprogrammierung fehlen. Wenn das Laden fehlerfrei war, folgt der Druck, sonst eine entsprechende Meldung. Die Grafikbefehle sind dazu da, die nicht benötigten Bildschirmteile zu verdecken, da wir nur eine Bildschirmhardcopy machen:
@r_print
FIRSTMENU
IF (schongewürfelt==1) THEN
STRNBOX "/BBitte Drucker einschalten","und Papier einlegen./P",""
PRINTINIT treiberpuffer
IF (iostat==0) THEN
PATTERN 0
RECT 0,0,319,39 : RECT 0,176,319,199
RECT 0,0,44,199 : RECT 276,0,319,199
STARTPRINT
HARDCOPY 0,(128+20), 25, datenpuffer
STOPPRINT
PRINTDONE
PATTERN 2
RECT 0,0,319,199
grafik_aufbauen
MENU h_menü,0
IMPRINT 0,0,74,14
ELSE
ERROR
ENDIF
ELSE
STRNBOX "/BZunächst muß eine Zahlenreihe","erzeugt werden!/P",""
ENDIF
RETURN
Die Zahlen bei "HARDCOPY" haben folgende Funktionen:
0: Drucken ab der 0.ten Bildschirmzeile
(128+20): 120 entspricht Bit7 gesetzt - wenn dies so ist, werden
Bit0 bis Bit6 als Abstand in Bildpunkten (hier: 20 -
%0010100) interpretiert, also ist diese Zahl für den
linken Druckrand zuständig.
25: zu druckende Zeilen
Hilfe - oder die Suche nach den DeskAccessoires BYTEVAR pos,last ROW 8 STRVAR16;tools "pos" ist die Position des angeklickten Hilfsmittels im GEOS-Menü, "last" das letzte vorhandene Programm und "tools" die Liste der ersten acht DAs auf dem Startlaufwerk von unserem Programm. Erst einmal sind dieses Hilfsmittel zu suchen (einfügen direkt nach @hauptprogramm):
FCLASS"",5,8,tools
("" = keine bestimmte Dateiklasse, 5 = GEOS-filetyp,
8 = Max. Anzahl der zu suchenden Files)
last=backbyte
Dann ist die Länge des GEOS-Menüs zu korrigieren, falls mal weniger als acht DAs gefunden werden: POKE ((ADR m_geos)+l),(((9-last)*14)+15) POKE ((ADR m_geos)+6),((9-last)OR%10000000) Hier könntet Ihr ins Grübeln geraten... Richtig! Das Objekt "m_geos" ist noch zu ergänzen, damit die POKE-Befehle auch Ihren Zweck erfüllen. "m_geos" muß nun 9 Einträge haben, dabei ist Eintrag 0 schon aus Teil 5 bekannt. Die Einträge 1 bis 8 enthalten die Dateinamen, die mit FCLASS gefunden wurden, also muß es "tools, position" heißen (siehe Bild), "position" ist die Länge der Namen in der Zeichenkette: 16 Zeichen plus Nullbyte pro Eintrag, also 0,17,34 u.s.w. Als Ansprungroutine wird @hilfsmittel (definieren!!!) angegeben:
@hilfsmittel
pos=menunum
FIRSTMENU
GETFILE (tools<(pos - 1)>),0,curdrive,""
RECOVER 0,0,319,199
CLRCOL
IF (iostat<>0) THEN
ERROR
ENDIF
RETURN
GETFILE lädt jene Datei, deren Position durch pos/menunum von Nutzer ausgewählt wurde von aktuellen Laufwerk (curdrive); RECOVER stellt den Bildschirm nach dem Verlassen des DeskAccessoires wieder her, die Fehlerroutine dient zum Schutz vor Diskettenproblemen. Jetzt haben wir das Programm compiliert und getestet und entdecken noch einen kleinen Schönheitsfehler: Das Menü ist nach dem Aufruf eines Hilfsmittels nicht mehr sichtbar (aber noch vorhanden!). IMPRINT 0,0,74,14 Die letzten beiden Koordinaten sind u. U. an Eure eigene Menüleiste anzupassen, sie geben die rechte, untere Ecke des Menüs an. So, beim nächsten Mal geht es um VLIR-Strukturen. Die Workshop-Disk wurde wieder einmal aktualisiert und ist gegen Unkostenerstattung bei mir zu haben.
Kurzlink hierhin: http://geos-printarchiv.de/2038 |
|
|
Letzte Änderung am 01.11.2019 |
||