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:

Wie mache ich ein "oben-unten-Enter-Menü"?

 
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
Manu



Anmeldungsdatum: 16.07.2006
Beiträge: 174
Wohnort: Bayern

BeitragVerfasst am: 12.08.2006, 12:06    Titel: Wie mache ich ein "oben-unten-Enter-Menü"? Antworten mit Zitat

Hallo,
wei mache ich in QBasic ein Menü wo ich mit oben rauf und unten runter kann.
Die ganzen Menüpunkte muss man dann bestätigen mit Enter wenn man sich gerade darauf befindet.

so:

Start
Optionen
Ende

ihr wisst schon was ich meine
danke im voraus
mfg Manu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 12.08.2006, 12:21    Titel: Antworten mit Zitat

Das geht eigentlich recht einfach. Hier ein Beispiel. Ich habe das einfach mal flott dahin geschrieben und nicht getestet. Vom Source her, dürfte das Prinzip auch klar sein.

Zitat:
DIM Menu$(1 TO 3)
Menu$(1) = "Start"
Menu$(2) = "Optionen"
Menu$(3) = "Ende"

DIM Aktuell, Auswahl ' Aktuell ausgewählter Menüpunkt
Aktuell = 1

Auswahl = 0

DO

' Anzeige der Optionen
FOR e = LBOUND(Menu$) TO UBOUND (Menu$)
LOCATE e, 10
IF e = Aktuell THEN COLOR 15,0 ELSE COLOR 7, 0 ' Hebe gewählte Option hervor
PRINT Menu$(e)
NEXT e

DO
a$ = INKEY$
LOOP UNTIL a$ <> ""

IF a$ = CHR$(13) THEN Auswahl = Aktuell
IF a$ = CHR$(0) + "P" THEN IF Aktuell < UBOUND(Menu$) THEN Aktuell = Aktuell + 1
IF a$ = CHR$(0) + "H" THEN IF Aktuell > LBOUND(Menu$) THEN Aktuell = Aktuell - 1
LOOP UNTIL Auswahl <> 0

SELECT CASE Auswahl ' Werte das Ergebnis aus
CASE 1
Call Sub_Start
CASE 2
Call Sub_Optionen
CASE 3
Call Sub_Ende
END SELECT

_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Manu



Anmeldungsdatum: 16.07.2006
Beiträge: 174
Wohnort: Bayern

BeitragVerfasst am: 12.08.2006, 12:48    Titel: Antworten mit Zitat

aja
danke für deine Hilfe
mfg Manu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 12.08.2006, 16:03    Titel: Antworten mit Zitat

Zum Thema Benutzeroberflächen allgemein hätte ich sonst einen Artikel in meiner Sammlung:

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
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 12.08.2006, 17:13    Titel: Antworten mit Zitat

Ich habe mal vor längerer Zeit eine kleine Funktion geschrieben, die ich seitdem in jedem QB-Programm von mir integriere. Wenn es dabei wirklich nur so einfach wie möglich sein soll ohne irgendwelchen "Schnickschnack", kann dir mein Code wahrscheinlich weiterhelfen:
Code:
DECLARE FUNCTION MenueEngine% (y%, x%, Auswahl$)

CLS

Variable% = MenueEngine%(10, 10, "Spiel starten;Optionen;Beenden")

SELECT CASE Variable%
       
        CASE 1 ' Hier der Code fü?r 'Spiel starten'
                PRINT "Spiel starten wurde gewählt!"

        CASE 2 ' Hier der Code f?ür 'Optionen'
                PRINT "Optionen wurde gewählt!"

        CASE 3 ' Hier der Code f?ür 'Beenden'
                PRINT "Beenden wurde gewählt!"

END SELECT

FUNCTION MenueEngine% (y%, x%, Auswahl$)
'
' Version 1.01
'
' MenueEngine-Function... Written by Manuel Kammermeier
' please DO NOT remove this comment ;-)
'
' MenueEngine-Funktion... Erstellt von Manuel Kammermeier
' Bitte diesen Kommentar NICHT loeschen ;-)
'
DO
        temp% = INSTR(Auswahl$, ";")
                LOCATE y% + AnzahlP%, x% + 3
        IF temp% <> 0 THEN
                PRINT LEFT$(Auswahl$, temp% - 1)
                Auswahl$ = MID$(Auswahl$, temp% + 1, LEN(Auswahl$) - temp%)
        ELSE
                PRINT Auswahl$
        END IF
        AnzahlP% = AnzahlP% + 1
LOOP UNTIL temp% = 0
Auswahl% = 1
LOCATE y%, x%
PRINT "->"
DO
        DO
                SLEEP
                a$ = INKEY$
        LOOP UNTIL a$ = CHR$(0) + CHR$(80) OR a$ = CHR$(0) + CHR$(72) OR a$ = CHR$(13) OR a$ = CHR$(27)
        LOCATE y% + Auswahl% - 1, x%
        PRINT "  "
        IF a$ = CHR$(27) THEN
                IF Auswahl% = AnzahlP% THEN
                        a$ = CHR$(13)
                ELSE
                        Auswahl% = AnzahlP%
                END IF
        END IF
        IF a$ = CHR$(13) THEN
                MenueEngine% = Auswahl%
                LOCATE y% + AnzahlP%
                EXIT FUNCTION
        END IF
        IF a$ = CHR$(0) + CHR$(80) THEN
                Auswahl% = Auswahl% + 1
                IF Auswahl% > AnzahlP% THEN Auswahl% = 1
        END IF
        IF a$ = CHR$(0) + CHR$(72) THEN
                Auswahl% = Auswahl% - 1
                IF Auswahl% = 0 THEN Auswahl% = AnzahlP%
        END IF
        LOCATE y% + Auswahl% - 1, x%
        PRINT "->"
LOOP
END FUNCTION

_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
Manu



Anmeldungsdatum: 16.07.2006
Beiträge: 174
Wohnort: Bayern

BeitragVerfasst am: 12.08.2006, 19:28    Titel: Antworten mit Zitat

aja danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.08.2006, 15:21    Titel: Antworten mit Zitat

Soo, und jetzt gebe ich auch noch mal meinen Senf dazu: Mein Programm EasyCash verwendet teilweise auch solche Menüs,
vielleicht hilft dir der Source auch weiter lächeln

jb
_________________
Elektronik und Programmieren
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