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:

Brauche noch mal Hilfe ....

 
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
Jet X
gesperrt


Anmeldungsdatum: 05.01.2005
Beiträge: 447

BeitragVerfasst am: 06.03.2005, 16:33    Titel: Brauche noch mal Hilfe .... Antworten mit Zitat

Code:
CLS
Print " Jet X Systems "
PRINT "  Was wollen sie tun ? "
Print " Start "
Print " Info "
PRINT " Ende "



Nun soll man eingeben was man tun will !
Wenn man Start Eingibt kommt ein Text : Noch in Arbeit
Wenn man Info Eingibt kommt ein Text : By Tobias Thiel in 2005
Wenn man Ende Eingibt Beendet sich das Programm !

Könnt ihr mir Helfen ?
_________________
Courage ist gut, aber Ausdauer ist besser.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 06.03.2005, 16:47    Titel: Antworten mit Zitat

Hallo.

Entweder machst du ein schönes mit den Pfeiltasten steuerbares Menü oder du nimmst Zahlen bzw. Buchstaben. lächeln
Ich geh jetzt mal von Zahlen aus.

Code:
DO

 CLS: PRINT "Was willst du?"
 PRINT "(1) Banane"
 PRINT "(2) Telefon"
 PRINT "(3) Schnee"
 PRINT "(4) Ende"
 INPUT "Deine Auswahl: ", z$

 IF LEN(z$) <> 1 OR ASC(z$)<49 OR ASC(z$) >52 THEN
  'Falls Quatsch eingegeben, nochmal!
  PRINT "Ungültige Auswahl!"
  SLEEP
 ELSE
   EXIT DO
 END IF

LOOP

SELECT CASE VAL(z$)
CASE 1: PRINT "Warum ist die Banane krumm?"
CASE 2: PRINT "Tüdelü, tüdelü"
CASE 3: PRINT "Es schneit!"
CASE 4: END
END SELECT


Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
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: 06.03.2005, 17:01    Titel: Antworten mit Zitat

Artikel zum Thema:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 06.03.2005, 21:20    Titel: Antworten mit Zitat

Versuch mal das:

Code:

PRINT
PRINT " MENÜ"
PRINT
PRINT "(1) Menüpunkt 1"
PRINT "(2) Menüpunkt 2"
PRINT "(3) Beenden"
DO
 A$ = INPUT$(1)
 SELECT CASE A$
  CASE "1"
  PRINT "Menüpunkt 1"
  CASE "2"
  PRINT "Menüpunkt 2"
  CASE "3"
  END
 END SELECT
LOOP


Guck mal in die Monster-FAQ, da steht alles drin zwinkern zwinkern zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 07.03.2005, 20:15    Titel: Antworten mit Zitat

Irgendwie geht das viel einfach als meine Vorgänger erklärt haben neutral
Hier ist meine Version:

Code:

CLS
Print " Jet X Systems "
INPUT"  Was wollen sie tun ? ", x
IF x = "start" THEN PRINT "Noch in Arbeit"
IF x = "info" THEN PRINT "By Thobias Thiel in 2005"
IF x = "ende" THEN END


Man könnte aber auch schreiben

Code:

Print " Jet X Systems "
PRINT "Geben sie 1 für INFO ein"
INPUT "Geben sie ihre Kennziffer ein", x
IF x = "1" THEN PRINT "By Thobias Thiel in 2005"


Das dann natürlich auch für die beiden anderen Unterpunkte!
dk zwinkern
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 07.03.2005, 21:16    Titel: Antworten mit Zitat

Für solche Eingabemasken hab ich mal ne praktische Sub geschrieben:

Is ziemlich viel Quelltext, aber sehr praktisch, wie ich finde!
Der einzige Nachteil ist, dass es eher auf SCREEN 0 ausgelegt ist, und für Grafikmodi eher schlecht einsetzbar ist.

Anwendung:
Man Dimensioniert ein Feld, in dem alle Menüpunkte gespeichert sind, z.B.:

Code:

DIM e$(2)

e$(0) = "Starten"
e$(1) = "Infos"
e$(2) = "Ende"


Wichtig ist, dass das Feld mit dem Index 0 beginnt.

Der Aufruf erfolgt dann mit dem Parameter o (oder einer anderen Variable), in der dann der Index der Gewählten Option zurückgegeben wird.
Wenn in diesem Beispiel also "Infos" gewählt wird, gibt o 1 zurück.

Bedient wird mit den Pfeiltasten, ENTER und PgUp/Dn.

Code:

SUB Chose (o, e$())
u = UBOUND(e$) - 1
SELECT CASE u
 CASE IS <= 15
  FOR l = 1 TO 15
   LOCATE l + 6, 1
   PRINT SPACE$(80)
  NEXT
  FOR i = 0 TO u
   LOCATE i + 7, 5
   PRINT e$(i)
  NEXT
  o = 1
  DO
   z = o + 6
   LOCATE z, 2
   PRINT "*"
   k$ = INKEY$
   SELECT CASE k$
    CASE CHR$(27)
     END
    CASE CHR$(0) + "H"
     LOCATE z, 2
     PRINT " "
     o = o - 1
     IF o < 1 THEN o = u + 1
    CASE CHR$(0) + "P"
     LOCATE z, 2
     PRINT " "
     o = o + 1
     IF o > u + 1 THEN o = 1
   END SELECT
  LOOP UNTIL k$ = CHR$(13)
  CASE IS > 15
  s = 1
  o = 1
  DO
   FOR l = 1 TO 15
    LOCATE l + 6, 1
    PRINT SPACE$(80)
   NEXT
   z = o + 6 - (s - 1) * 15
   LOCATE z, 2
   PRINT "*"
   FOR i = (s - 1) * 15 TO s * 15 - 1
    LOCATE i + 7 - (s - 1) * 15, 5
    IF i <= u THEN PRINT e$(i) ELSE PRINT SPACE$(75)
   NEXT
   DO
    k$ = INKEY$
   LOOP WHILE k$ = ""
   SELECT CASE k$
    CASE CHR$(27)
     END
    CASE CHR$(0) + "H"
     LOCATE z, 2
     PRINT " "
     o = o - 1
     IF o = (s - 1) * 15 THEN s = s - 1
     IF s = 0 THEN s = 1
     IF o = 0 THEN o = 1
    CASE CHR$(0) + "P"
     LOCATE z, 2
     PRINT " "
     o = o + 1
     IF o > u + 1 THEN o = u + 1
     IF o = s * 15 + 1 THEN s = s + 1
     IF u / 15 = INT(u / 15) THEN
      IF s > u / 15 THEN s = u / 15
     ELSE
      IF s > (u / 15) + 1 THEN s = (u / 15) + 1
     END IF
    CASE CHR$(0) + "I"
     LOCATE z, 2
     PRINT " "
     s = s - 1
     o = o - 15
     IF o < 1 THEN o = 1
     IF s = 0 THEN s = 1
    CASE CHR$(0) + "Q"
     LOCATE z, 2
     PRINT " "
     s = s + 1
     o = o + 15
     IF o > u + 1 THEN o = u + 1
     IF u / 15 = INT(u / 15) THEN
      IF s > u / 15 THEN s = u / 15
     ELSE
      IF s > (u / 15) + 1 THEN s = (u / 15) + 1
     END IF
   END SELECT
  LOOP UNTIL k$ = CHR$(13)
END SELECT
o = o - 1
END SUB


Viel Spaß damit!
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 07.03.2005, 21:27    Titel: Antworten mit Zitat

Devilkevin hat Folgendes geschrieben:

Irgendwie geht das viel einfach als meine Vorgänger erklärt haben
Hier ist meine Version:

Code:

CLS
Print " Jet X Systems "
INPUT"  Was wollen sie tun ? ", x
IF x = "start" THEN PRINT "Noch in Arbeit"
IF x = "info" THEN PRINT "By Thobias Thiel in 2005"
IF x = "ende" THEN END



Was ist jetzt daran einfacher (oder anders) als vorher?
Zum ersten sieht man die Eingabe, man muss Enter zur Bestätigung
drücken, und einen ganzen Text (z.B. "info" eingeben, wobei Groß/Kleinschreibung und vorangehende Blanks nicht berücksichtigt werden, und zum anderen finde ich es umständlich, immer IF ... THEN ...
zu schreiben. Ein SELECT CASE ist da (jedenfalls meiner Meinung nach durchgeknallt )
sinnvoller...

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
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