' ---------------------------------------------------------------------------- ' CPRINTAT ' by ' (C)1997 by Marvin C. Stahl (2:2410/330.7) ' ---------------------------------------------------------------------------- ' Sprachen: QBASIC, Quick Basic, Basic PDS und Power Basic ' ---------------------------------------------------------------------------- ' Gibt einen Text an einer bestimmten Bildschirmposition aus und interpretiert ' dabei evtl. im Text enthaltene Farbcodes. Auf diese Weise spart man sich un- ' zaehlige LOCATE- und COLOR-Befehle. Die Geschwindigkeit reicht fuer nicht ' extrem zeitkritische Routinen mehr als aus. Auf einem 'schlappen' 286er/16 ' werden ueber 100 Texte/s ausgegeben. Auf 486er/66 und hoeher 1000de! ' ' Syntax der Farbcode: @ ' ' Beide Farbwerte werden als einstellige Hex-Zahlen dargestellt. So entspricht ' @F4 z.B. dem Befehl COLOR 15,4, also intensiv weisse Schrift auf dunkelrotem ' Hintergrund. Folgender farbenpraechtiger Beispieltext zeigt, wie Farbcodes in ' den Text eingebunden werden: "@F1Dies ist ein@E4 Test @70 fuer @A0Print.at" ' ' Die moeglichen Farben sind: ' ---------------------------------------------------------------- ' 0 = Schwarz 4 = Blau 8 = Grau C = Hellrot ' 1 = Blau 5 = Violett 9 = Gellblau D = Hellviolett ' 2 = Gruen 6 = Braun A = Hellgruen E = intensiv Gelb ' 3 = Tuerkis 7 = Weiss B = Helltuerkis F = intensiv Weiss ' ---------------------------------------------------------------- ' SUB CPrint.at (Zeile%,Spalte%,Text$) LOCATE Zeile%,Spalte% ' Cursor positionieren FOR I%=1 TO LEN(Text$) ' Text an dieser Position ausgeben Z$=MID$(Text$,I%,1) ' Zeichen vom Text holen IF Z$<>"@" THEN ' Kein Farbcode? PRINT Z$; ' Dann pur ausgeben ELSE ' Sonst Farbcode auswerten und Farben setzen COLOR VAL("&H"+MID$(Text$,I%+1,1)),VAL("&H"+MID$(Text$,I%+2,1)) I%=I%+2 ' Farbcode im Text ueberspringen END IF NEXT I% ' Weiter bis aller Text ausgegeben ist COLOR 7,0 ' Auf Standardfarben zuruecksetzen END SUB '-----------------------------------------------------------------------------