|
|
|
09.12.2024 | 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 |