 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Sternchen1
Anmeldungsdatum: 28.06.2006 Beiträge: 2
|
Verfasst am: 28.06.2006, 17:53 Titel: Wie Programm beenden? |
|
|
Hallo,
ich habe eine Ampelschaltung mit Q-Basic geschrieben.Mein Problem ist nur ich wollte eigentlich das Ganze so machen, dass das Programm automatisch beendet wird, sobald man eine beliebige Taste drückt, aber das klappt nicht. Ich muss jedesmal zum beenden "strg"+"alt"+"entf" drücken und dann hängt sich mein Computer auf. Und ich müsste es morgen in der Schule vorführen und da ist es ja nicht gerade sehr professionnel,wenn ich das so mache.
Kann mir jemand sagen, was ich da eingeben muss, damit es automatisch beendet wird? Wär total nett!!
Danke schon mal im Vorraus für alle Antworten!! |
|
Nach oben |
|
 |
Sternchen1
Anmeldungsdatum: 28.06.2006 Beiträge: 2
|
Verfasst am: 28.06.2006, 18:05 Titel: |
|
|
Also ich hab hier jetzt mal das Programm reinkopiert:
SCREEN 12
CLS
LINE (250, 10)-(300, 180), , B
LINE (450, 10)-(500, 180), , B
LINE (301, 5)-(305, 400), 7, BF
LINE (501, 5)-(505, 400), 7, BF
LOCATE 25, 2
PRINT "Taste drücken beendet die Ampel."
DO
LINE (250, 400)-(350, 405), 7, BF
LINE (450, 400)-(550, 405), 7, BF
FOR i% = 1 TO 12
LINE (251, 11)-(299, 179), 0, BF
LINE (451, 11)-(500, 179), 0, BF
CIRCLE (275, 50), 20, 4
IF i% = 5 OR i% = 6 OR i% = 7 OR i% = 8 OR i% = 9 OR i% = 10 OR i% = 11 OR
CIRCLE (475, 50), 20, 4
IF i% = 1 OR i% = 2 OR i% = 3 OR i% = 4 OR i% = 5 OR i% = 6 OR i% = 11 OR i
CIRCLE (275, 100), 20, 14
IF i% = 4 OR i% = 12 THEN PAINT (275, 90), 14 'Ampel 1 gelb
CIRCLE (475, 100), 20, 14
IF i% = 6 OR i% = 10 THEN PAINT (475, 100), 14 'Ampel 2 gelb
CIRCLE (275, 145), 20, 2
IF i% = 1 OR i% = 2 OR i% = 3 THEN PAINT (275, 145), 2 'Ampel 1 grün
CIRCLE (475, 145), 20, 2
IF i% = 7 OR i% = 8 OR i% = 9 THEN PAINT (475, 145), 2 'Ampel 2 grün
IF i% = 1 OR i% = 2 OR i = 3 THEN OUT 888, 12
IF i% = 4 THEN OUT 888, 10
IF i% = 5 OR i% = 11 THEN OUT 888, 9
IF i% = 6 THEN OUT 888, 25
IF i% = 7 OR i% = 8 OR i% = 9 THEN OUT 888, 33
IF i% = 10 THEN OUT 888, 17
IF i% = 12 THEN OUT 888, 11
SLEEP 3
NEXT i%
LOOP
Tja,und jetzt stellt sich eben noch die Frage, wie man diese Schleife beendet!
Danke fürs Lesen und für alle Antworten! |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 28.06.2006, 18:25 Titel: |
|
|
Benutze in Zukunft bitte "[ code]" und "[ /code]".
Zitat: | IF i% = 5 OR i% = 6 OR i% = 7 OR i% = 8 OR i% = 9 OR i% = 10 OR i% = 11 OR | - da fehlt was.
anstatt vieler "if"-anweisungen kannst du select case verwenden:
Code: | select case i%
case 7,8,9 : paint(275,145),2 'Ampel 1 gruen
(...)
case 6 : out 888, 25
end select |
ließ dazu am Besten http://select.freebasic.de
Und um deine eigentliche Frage zu beantworten: Du musst eine Abbruchbedingung für deine do-loop-Schleife definieren, in diesem Falle müsste das etwa Code: |
do
(...)
loop until inkey$<>"" |
heißen.
ließ dazu am Besten http://do.freebasic.de
Gruß
Lutz Ifer _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 29.06.2006, 12:26 Titel: |
|
|
Generell würde ich eher empfehlen, INKEY$ in einer Variablen zu speichern, da
es bei mehrfacher Abfrage von INKEY$ *ohne Variable* zu Problemen kommen kann.
Code: |
DO
Eingabe$ = INKEY$
' Dein Code...
LOOP UNTIL Eingabe$ = CHR$(27)
|
Damit wartet das Programm auf Escape.
Noch was: Wenn du SLKEEP 3 benutzt, und der Benutzer eine Taste drückt, um die
Wartezeit abzubrechen, dann wird die gedrückte Taste ebenfalls in INKEY$ gespeichert.
Daher würde ich zu einer anderen Warteschleife raten:
Code: |
T = TIMER
DO
LOOP UNTIL TIMER >= T + Sekunden
|
Für Sekunden musst du dann nur die gewünschte Wartezeit in Sekunden eintragen
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Thomas Antoni

Anmeldungsdatum: 12.10.2004 Beiträge: 220 Wohnort: Erlangen
|
Verfasst am: 29.06.2006, 16:15 Titel: |
|
|
Evtl. hilft Folgendes weiter:
www.qbasic.de -> QB-MonsterFAQ -> "Tastatureingabe -> Wie kann ich mein Programm jederzeit mit Esc abbrechbar machen?"
Viel Erfolg :) _________________ +++ Die beliebte QBasic CD-ROM von QBasic.de - 670 MB QBasic-Stuff mit komfortabler HTML-Oberfläche. Für nur 5 EUR bestellbar auf www.antonis.de/qbcdueb.htm +++ |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|