'************************************************************************* ' ' ONKEY.BAS = QBasic-Programm zur Demonstration der ON KEY Funktion ' ========= ' Im Hauptprogramm wird der Anzeigewert mit Hoeher-/Tiefertaste veraendert. ' Die F1- und F2-Taste werden nicht zyklisch abgefragt ("gepollt"), sondern ' ereignisgesteuert (Interrupt-gesteuert) nur bei Tastenbetaetigung mit ' ON KEY... bearbeitet. Die Bearbeitungsroutine "Hilfe" der F1-Taste gibt ' unten auf dem Bildschirm einen Hilfetext aus. Die Bearbeitungsroutine ' "HilfeEnde" der F2-Taste loescht den Hilfetext wieder. Die Tastenbear- ' beitungsroutinen sind lokale Subroutinen. ' ' Thomas Antoni, 03.03.00 - 06.01.01 ' thomas@antonis.de ' '************************************************************************** CLS '------ Ereignisgesteuerte Bearbeitung der F1- u.F2-Taste aktivieren ------ KEY(1) ON 'Ereignisverfolgung fr F1-Taste einschalten ON KEY(1) GOSUB Hilfe 'Bearbeitung fr F1-Taste aufrufen KEY(2) ON 'Ereignisverfolgung fr die F2-Taste einschalten ON KEY(2) GOSUB HilfeEnde 'Bearbeitung fr F2-Taste aufrufen '------- Hauptprogramm ---------------------------------------------------- PRINT " ONKEY.BAS - Demoprogramm fr die ereignisgestuerte Tastenbearbeitung" LOCATE 21 PRINT " [F1-Taste] ... Hilfe anfordern" DO Taste$ = INKEY$ IF Taste$ = CHR$(0) + "H" THEN x = x + 1 IF Taste$ = CHR$(0) + "P" THEN x = x - 1 LOCATE 7, 1: PRINT x LOOP WHILE Taste$ <> CHR$(27) END '-------- F1-Taste ereignisgesteuert bearbeiten: -------------------------- '-------- Hilfefenster anzeigen Hilfe: zeile! = CSRLIN: spalte! = POS(0) COLOR 4 LOCATE 18, 1 PRINT " ------------ Hilfe-Fenster ------------------ " PRINT PRINT " [F2]-Taste........ schlieát das Hilfe-Fenster" PRINT " [H”her]-Taste..... erh”ht den Anzeigewert" PRINT " [Tiefer]-Taste.... reduziert den Anzeigewert" PRINT " [Esc]-Taste....... beendet das Programm" LOCATE zeile!, spalte! COLOR 15 RETURN '-------- F2-Taste ereignisgesteuert bearbeiten: ------------------------- '-------- Hilfefenster l”schen HilfeEnde: zeile! = CSRLIN: spalte! = POS(0) COLOR 4 LOCATE 18, 1 PRINT SPC(70); " " 'Hilfetext l”schen PRINT PRINT SPC(70); " " PRINT SPC(70); " " PRINT SPC(70); " " LOCATE zeile!, spalte! COLOR 15 RETURN