Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

eine Frage zu dem Befehl Key

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Edocsil



Anmeldungsdatum: 07.07.2007
Beiträge: 59
Wohnort: Deutschland

BeitragVerfasst am: 08.07.2007, 12:00    Titel: eine Frage zu dem Befehl Key Antworten mit Zitat

moin,
Ich suche einen Befehl mit dem dem ich beim Drücken einer Taste im Programm einen Befehl ausführe. Hab auch schon mal geguckt und folgende Struktur gefunden doch hab noch einige fragen dazu , siehe :rem :

10 cls
20 Data Anfügen löschen, Ende :rem was Bewirkt Data?
30For I=1 to 3 :rem for next Schleife für fest legen der Tasten
40 Read KeyText$ :rem was Bewirkt das? ist Text$ ein String
50 Key I, KeyText$(I) +CHR$(13) :rem mit hilfe der Schleife werden Tasten fest gelegt, 1,2,3, =F1,F2,F3 --> asci code ; wenn ich I=97 setze ist das dann die Taste a; der Asci code stammt aus meinem Tafelwerk
60 Next I
70
80 Do :rem do schleife
90 Locate 7,1 : input "Geben sie Ihre Wahl ein:" , t$
100 select case T$ :rem wählt T$ an und übeprüft die Eingabe
110 case "Anfügen","löschen" :rem wenn "Anfügen","löschen" dann führe Befehl aus
120 locate 10,1: ? R$
130 case "Ende"
140 Exit Do
150 case Else :rem wenn keine Anfügen Ende Löschen dann mache das
160 locate 10,1: ? "Falsch"
170 end select : rem ende davon
180 Loop :rem do schleife beginnt wieder

Hoffe jemand wird aus meinem geschriebenemschlau... happy

Kann mir wer genau sagen für welche Taste ich welches I(asci code) einsetzen muss ?
Wenn ich das in mein Programm einbaue hält es immer bei der Eingabe Aufforderung an, geht es auch ohne anhalten? Sprich das Programm läuft dauerhaft durch, erst wenn die entsprechende Taste gedrückt wird, wird ein Befehl ausgeführt.
Kann ich es schaffen, dass neben meinem Programm noch ein Zweites läuft? z.B. es läuft eine Zählschleife und neben bei werden soundBefehle ausgeführt ?
_________________
" Zwei DInge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir nicht ganz sicher. "
[Albert Einstein]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 08.07.2007, 13:35    Titel: Antworten mit Zitat

Data und Read benutzt man um bequem Variablen Werte zuzuweisen.
Generell solltest du dir angewöhnen, den Quelltext zu formatieren, also Schleifen einzurücken. Und Zeilennummern brauchst du ja auch nicht unbedingt.

Eine einfache Menüabfrage könnte so aussehen (nicht getestet)
Code:
   CLS
   PRINT "=== Menü ==="
   PRINT "1) Starten"
   PRINT "2) Hilfe"
   PRINT "3) Beenden (oder ESC)"

   DO
      taste$ = INKEY$
      SELECT CASE taste$
             CASE "1"
         'tue dies, tue das
             CASE "2"
         'starte Hilfe
             CASE "3"
         EXIT DO
      END SELECT

   LOOP UNTIL taste$ = CHR$(27) 'CHR$(27) steht für ESC

_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Edocsil



Anmeldungsdatum: 07.07.2007
Beiträge: 59
Wohnort: Deutschland

BeitragVerfasst am: 08.07.2007, 13:40    Titel: Antworten mit Zitat

So werde es gleich mal testen. grinsen thx

mmh geht leider nicht, hab es so geschrieben wie es da steht, halt als Befehl bei Case"1" ? "hallo" ...

Fehler kam bei
Code:
 taste$= inkey


--> "unverträgliche Dateitypen"

dazu muss ich sagen ich kann auch was flasch gemacht haben , beschäftige mich mit qb jetzt seit ~ einer Woche durchgeknallt
_________________
" Zwei DInge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir nicht ganz sicher. "
[Albert Einstein]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MCMEYER



Anmeldungsdatum: 03.06.2007
Beiträge: 20

BeitragVerfasst am: 08.07.2007, 16:27    Titel: Antworten mit Zitat

Code:
 taste$= inkey


funktioniert nicht


Code:
 taste$= inkey$


sollte funktionieren
_________________
Wer Rechtschreibfehler findet darf sie behalten zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thomas Antoni



Anmeldungsdatum: 12.10.2004
Beiträge: 220
Wohnort: Erlangen

BeitragVerfasst am: 13.07.2007, 15:55    Titel: Antworten mit Zitat

Vielicht hilft dir auch der folgende QB-Monster-FAQ Artikel weiter

"Tastatureingabe -> Wie kann ich ein Tastenmenü programmieren?"
_________________
+++ 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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 13.07.2007, 20:43    Titel: Antworten mit Zitat

Im ganz alten GW-BASIC gab es für die Funktionstasten den KEY-Befehl, bei dem man Eingabesequenzen vordefinieren konnte. Ansonsten, was die Menüprogrammierung betrifft:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html

(Artikel aus meiner Sammlung zum Thema Benutzeroberflächen unter DOS allgemein)
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Edocsil



Anmeldungsdatum: 07.07.2007
Beiträge: 59
Wohnort: Deutschland

BeitragVerfasst am: 22.07.2007, 12:12    Titel: Antworten mit Zitat

Da ich das Thema hier geöffnet hab möchte ich es jetzt auch beenden durchgeknallt
also, zum Key Befehl ein Beispiel von mir:

Code:


t$ =inkey$                ' t$ wird Taste festgelegt
   select case t$         ' t$ wird ausgewählt
        case "x"            ' wenn x gedrückt wird, wird der Bef 1 ausgeführt
        Befehl1             
        case "y"
        Befehl2
        case "z"
        Befehl3
end select                  ' ende der Auswahl



wenn nur eine Taste abgefragt werden soll, nimmt man das :

Code:

"taste"=inkey$


taste steht dabei für einen Buchstaben oder eine Zahl auf der Tastatur die gedrückt wird um den Befehl auszuführen. "" dürfen nicht vergessen werden.

wenn die Taste keine Buchstabe oder Zahl ist nimmt man das.

Code:

chr$(xx)=inkey$


dabei steht xx für einen ASCII-Code z.B
Esc = CHR$(27)
27 steht für Esc

ASCII-Code`s sind im I-Net zu finden oder direkt bei QB unter Hilfe Themen.

Falls was falsch sein soll immer Verbesserung her durchgeknallt, aber ich denke mal ich hab das wichtigste für Anfänger erklärt. happy
_________________
" Zwei DInge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir nicht ganz sicher. "
[Albert Einstein]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz