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:

Probleme mit einer Case Abfrage

 
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
Grey Fox



Anmeldungsdatum: 16.02.2005
Beiträge: 13

BeitragVerfasst am: 16.02.2005, 09:10    Titel: Probleme mit einer Case Abfrage Antworten mit Zitat

Hallo!

1. Frage
Also ich habe Beispielsweise folgenden Code
Aber wenn dann eigentlich die Tastenabfrage kommen soll bzw. kommt.
Dann muss anscheinend die Variable zahler% die ganze Zeit zwischen 0 und 1 springen!
Es muss an der Fallunterscheidung liegen... aber eigentlich sind die Funktionen richtig.

Zitat:
CLS
PRINT ""
PRINT "II"
PRINT ""
SLEEP
CLS

PRINT ""
PRINT "II"
PRINT ""
Fall1$ = "IErste möglichkeitI"
Fall2$ = "IZweite möglichkeitI"
Some$ = "II"

menuezahl% = 2

DO
SELECT CASE INKEY$

CASE CHR$(0) + "P"
IF zahler% < menuezahl% - 1 THEN zahler% = zahler% + 1 ELSE zahler% = 0
CASE CHR$(0) + "H"
IF zahler% > 0 THEN zahler% = zahler% - 1 ELSE zahler% = menuezahl% - 1
CASE CHR$(13): EXIT DO

END SELECT

IF zahler% = 0 THEN :
LOCATE 7:
COLOR 15, 4:
PRINT Fall1$:
COLOR 7, 0:
PRINT Fall2$:
PRINT Some$:
IF zahler% = 1 THEN :
LOCATE 7:
COLOR 7, 0:
PRINT Fall1$:
COLOR 15, 4:
PRINT Fall2$:
COLOR 7, 0:
PRINT Some$:
LOOP

IF zahler% = 0 THEN END
IF zahler% = 1 THEN END


2. Frage
Will mit CHAIN die Kontrolle einen anderen Programm übergeben.
Wollte aber die Variablen die ich definiert habe mit in das andere Prog übernehmen!
Wollte die aber nicht mithilfe einer Auslagerungsdatei machen sondern direkt im Arbeitsspeicher.

Soweit ich aber weiß werden die im Arbeitsspeicher gespeicherten Variablen jedoch nach Beendigung eines Programms wieder überschrieben!

Gibt es also eine sichere Adresse wo die Variablen auch nach beendigung eines Programms erhalten bleiben?

Bye
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 16.02.2005, 10:38    Titel: Antworten mit Zitat

Guten Morgen!

Wenn du Variablen nur von BAS zu BAS übergeben willst, reicht es, wenn du sie am Programmbeginn als COMMON definierst (siehe QB-Hilfe) und anschließend einen entsprechenden Chain-Aufruf machst.

Grüßle,
Mecki
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Grey Fox



Anmeldungsdatum: 16.02.2005
Beiträge: 13

BeitragVerfasst am: 16.02.2005, 10:53    Titel: Antworten mit Zitat

Die Globalen Variablen Funktionieren aber nicht unter CHAIN!!!

Grund CHAIN ruft ein anderes Programm auf!
Das heißt mit CHAIN wird die Funktion deines Hauptprogramms eingestellt
Variablen die als COMMON Deklariert sind können nur von Haupt-Programm zu Unterprogramm usw. übergeben werden!
Oder lieg ich da jetzt falsch!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 16.02.2005, 10:58    Titel: Antworten mit Zitat

ich denke, dass das was du meinst, SHARED ist...
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Grey Fox



Anmeldungsdatum: 16.02.2005
Beiträge: 13

BeitragVerfasst am: 16.02.2005, 11:11    Titel: Antworten mit Zitat

Ob COMMON oder SHARED ist doch eigentlich egal!

Es kommt auf das selbe hinaus die Variable ist und kann dann nicht mehr verfügbar sein weil nur solange das Hauptprogramm, wo die Variable deklariert wurden ist, aktiv ist, bleibt sie im Arbeitsspeicher
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Grey Fox



Anmeldungsdatum: 16.02.2005
Beiträge: 13

BeitragVerfasst am: 16.02.2005, 11:58    Titel: Antworten mit Zitat

Also Frage 1 hab ich jetzt selber gelöst!

Mal abgesehen davon das ich das END IF vergessen habe

Zitat:

IF zahler% = 0 THEN :
LOCATE 7:
COLOR 15, 4:
PRINT Fall1$:
COLOR 7, 0:
PRINT Fall2$:
PRINT Some$:
IF zahler% = 1 THEN :
LOCATE 7:
COLOR 7, 0:
PRINT Fall1$:
COLOR 15, 4:
PRINT Fall2$:
COLOR 7, 0:
PRINT Some$:
LOOP


Es lag so komisch das auch klingt einzig und allein an der anordnung den Tab abstand usw. die Blöcke sahen vorher so aus:

Vorher:

__IF ... THEN:
____Anweisung:
____ELSEIF...THEN:
______Anweisung:
________ELSE:
__________END IF:

Nacher:

__IF...THEN
____Anweisung
__ELSEIF...THEN
____Anweisung
__ELSE
____Anweisung
__END IF

Ich habe nur die : weggelassen und die Block Anordnung anders gesetzt!
und Jetzt zählt LOOP auch wieder und DO wird wieder erkannt.

Seltsam mit dem Kopf durch die Mauer wollen
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