OPENS 1,0,0,320,256,3,0 OPENW #2,0,0,320,256,0,&H1000 TITLEW #2,"" ' ---------------------------------------------------------- ' Demotext mit dem "TEXT"-Befehl ' FOR pixel%=-1 TO 5 !Schleife Pixelabstand INC farbe% !Farbe hochzählen IF farbe%=7 !Hintergrundfarbe farbe%=farbe%+1 !überspringen ENDIF COLOR farbe%+1 !Farbe setzen stil%=pixel%+1 !Schriftstil ab 0 @schriftmodus(stil%) !Modus aufrufen @zeichenabstand(pixel%) !Pixelabstand TEXT 100,stil%*15+50,"Schriftdemo" NEXT pixel% @schriftmodus(0) !Modus wieder auf 0 @zeichenabstand(0) !Pixelabstand auf 0 ' ----------------------------------------------------------- ' ' Demo Rahmenfarbe mit Systemroutine ' Text mit dem "PRINT"-Befehl und CSI Routinen ' @rahmenfarbe(0,1) !Rahmenfarbe setzen @print_at(10,1,"DEMO") !Textausgabe PAUSE 70 ' REPEAT @rahmenfarbe(1,6) !Rahmenfarbe setzen @style(1,1,5) !CSI Befehl (Style) text$=" W A R N U N G " @print_at(160-LEN(text$)*8/2,1,text$) !CSI Befehl (Textposition PAUSE 40 !mittig) ' EXIT IF MOUSEK<>0 !Ausstieg wenn Maustaste ' !gedrückt @rahmenfarbe(0,1) !neue Rahmenfarbe TITLEW #2,"" !Titel löschen @style(0,2,1) !neuer Schrift Style text$="Zum Beenden eine Maustaste drücken" @print_at(160-LEN(text$)*8/2,1,text$) !neue Textposition PAUSE 30 !Text wieder mittig UNTIL MOUSEK<>0 !Maustaste? END ' ----------------------------------------------------------- ' ' Routine Rahmenfarbe ' PROCEDURE rahmenfarbe(detailpen%,blockpen%) scr%=LPEEK(SCREEN(1)+4) !Zeiger auf Datenstruktur POKE (scr%+98),detailpen% !neue Detailfarbe schreiben POKE (scr%+99),blockpen% !neue Blockfarbe schreiben ~RefreshWindowFrame(scr%) !Systemaufruf Farbwechsel RETURN ' ----------------------------------------------------------- ' ' CSI Befehl für Schriftstil/Vordergrundfarbe/Hintergrundfarbe ' PROCEDURE style(stil%,vfarbe%,hfarbe%) ' | siehe auch Demo | Schriftstil 0=normal ' | "Printfarbe" | 1=unterstrichen ' | auf der Update Disk | 2=fett ' ----------------------------- 3=unterstrichen ' style$=STR$(stil%)+";"+STR$(30+vfarbe%)+";"+STR$(40+hfarbe%) PRINT CHR$(&H9B);style$;CHR$(&H6D) RETURN ' ----------------------------------------------------------- ' ' CSI Befehl für pixelweise Schriftpositionierung ' PROCEDURE print_at(x%,y%,text$) !Pixelgenaue Positionierung PRINT CHR$(&H9B);x%;CHR$(&H78) ! in X PRINT CHR$(&H9B);y%;CHR$(&H79) ! in Y VTAB 0 !Cursor zurücksetzen PRINT text$ !Textausgabe RETURN ' ----------------------------------------------------------- ' ' Schriftmodus wenn "TEXT"-Befehl verwendet wird ' PROCEDURE schriftmodus(stil%) ' Schriftstil 0=normal ' 1=unterstrichen ' 2=fett ' 3=unterstrichen POKE LPEEK(WINDOW(2)+50)+56,stil% !Stil in Rastportstruktur RETURN !schreiben ' ----------------------------------------------------------- ' ' Buchstabenabstand in Pixel mit dem "TEXT"-Befehl ' PROCEDURE zeichenabstand(pixel%) !Buchstabenabstand DPOKE LPEEK(WINDOW(2)+50)+64,pixel% !in Pixel in Rastport- RETURN !Struktur schreiben ' -----------------------------------------------------------