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:

Zurück zum Startbildschirm

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



Anmeldungsdatum: 19.11.2006
Beiträge: 1

BeitragVerfasst am: 19.11.2006, 15:32    Titel: Zurück zum Startbildschirm Antworten mit Zitat

Hallo,
also ich habe einen Startbildschirm wo man eine Funktion aussuchen kann.
Diese Seite dann oder mehr Unterprogramm rufe ich mit Sub auf.
Er öffnet es, aber wie komme ich dann wieder zu dem Ausgangsbildschirm zurück?
Wenn ich Escape drücke schliest er das Programm.
Hier mal der Code.

Code:
DECLARE FUNCTION Datum$()
DECLARE SUB rechnen_2pkt()
#include "inc_rechner.bi"

language$ = "d"
start:
COLOR 0,7
WIDTH 80,30
CLS

COLOR 15,4
PRINT "              Ein Einfacher Taschenrechner von --- ";Datum$;"  " ;

COLOR 0,7

IF language$ = "d" THEN
  PRINT
  PRINT "   <1> Normaler Taschenrechner"
  PRINT "   <2> Wuzrel Taschenrechner"
  PRINT "   <3> Mit 2 Punkten Strecke berechnen (2D)"
  PRINT "   <4> Mit 2 Punkten Strecke berechnen (3D)"
  PRINT
  PRINT "   <e> Englisch"

ELSE
  PRINT
  PRINT "   <1> Calculator"
  PRINT "   <2> Wuzrel Calculator"
  PRINT
  PRINT "   <d> German"
   
END IF


PRINT
COLOR 14,1
LOCATE 12,3
PRINT "Bitte waehlen Sie die gewuenschte Funktion 1 bis 2 aus"

COLOR 15,4
LOCATE 29,0
PRINT "Bennden = Esc"

'----------------------Tastenabfrage Anfang---------------------------------------
DO
taste$ = INKEY$

SELECT CASE taste$

CASE "d"
    language$ = "d"
    GOTO start
   
CASE "e"
    language$ = "e"
    GOTO start
   
CASE "3"
    CALL rechnen_2pkt
       
END SELECT

LOOP WHILE taste$ <> CHR$(27) OR taste$ = ""
CLS
END
'----------------------Tastenabfrage Ende-----------------------------------------


Und hier die inc_rechner.bi
Code:
'----------------------Datums Funktion Anfange-----------------------------
FUNCTION Datum$
    d$ = DATE$
    Datum$ = MID$(d$, 4, 2) + "." + LEFT$(d$, 2) + "." + RIGHT$(d$, 4)
   
END FUNCTION

'----------------------Strecke berechnen aus 2 Punkten---------------------
SUB rechnen_2pkt

  COLOR 0,7
  WIDTH 80,30
  CLS

  COLOR 15,4
  PRINT Datum$

END SUB




mfg Phill


Zuletzt bearbeitet von Phill am 09.01.2007, 21:07, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 19.11.2006, 18:21    Titel: Antworten mit Zitat

So etwa?
Code:
DECLARE FUNCTION Datum$()
DECLARE SUB rechnen_2pkt()
Declare sub menu(language as byte)

dim taste as string*1
dim language as byte

language=0

menu(language)


'----------------------Tastenabfrage Anfang---------------------------------------
DO
taste$ = INKEY$

SELECT CASE taste$

CASE "d"
    language = 0
    menu(language)
   
CASE "e"
    language = 1
    menu(language)

CASE "3"
    CALL rechnen_2pkt
    menu(language)
   
END SELECT

LOOP WHILE taste$ <> CHR$(27) OR taste$ = ""
CLS
END
'----------------------Tastenabfrage Ende-----------------------------------------

'----------------------Datums Funktion Anfange-----------------------------
FUNCTION Datum$
    d$ = DATE$
    Datum$ = MID$(d$, 4, 2) + "." + LEFT$(d$, 2) + "." + RIGHT$(d$, 4)
   
END FUNCTION

'----------------------Strecke berechnen aus 2 Punkten---------------------
SUB rechnen_2pkt

  COLOR 0,7
  WIDTH 80,30
  CLS

  COLOR 15,4
  PRINT Datum$

END SUB

Sub Menu(language as byte)
    COLOR 0,7
    WIDTH 80,30
    CLS
   
    COLOR 15,4
    PRINT "              Ein Einfacher Taschenrechner                          ";Datum$;"  " ;
   
    COLOR 0,7
   
    IF language = 0 THEN
      PRINT
      PRINT "   <1> Normaler Taschenrechner"
      PRINT "   <2> Wuzrel Taschenrechner"
      PRINT "   <3> Mit 2 Punkten Strecke berechnen (2D)"
      PRINT "   <4> Mit 2 Punkten Strecke berechnen (3D)"
      PRINT
      PRINT "   <e> Englisch"
   
    ELSE
      PRINT
      PRINT "   <1> Calculator"
      PRINT "   <2> Wuzrel Calculator"
      PRINT
      PRINT "   <d> German"
       
    END IF
   
    PRINT
    COLOR 14,1
    LOCATE 12,3
    PRINT "Bitte waehlen Sie die gewuenschte Funktion 1 bis 2 aus"
   
    COLOR 15,4
    LOCATE 29,0
    PRINT "Bennden = Esc"
end sub


Kommentar zu den Änderungen:
Zitat:
#include "inc_rechner.bi"

Das lohnt sich jetzt nicht wirklich.

Zitat:
language$ = "d"

Ein String braucht viel mehr Speicher und Rechenzeit als nötig.
Die Sprache als Nummern Code ist Sinnvoller.

Zitat:
GOTO start

Bitte kein Goto, das ist einfach Unschön.

Zitat:
dim taste as string*1

In taste wird maximal ein Zeichengespeichert, also kann man es so angeben.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 19.11.2006, 18:38    Titel: Antworten mit Zitat

Michael Frey hat Folgendes geschrieben:
Zitat:
dim taste as string*1

In taste wird maximal ein Zeichengespeichert, also kann man es so angeben.


Nein, in taste können auch 2 Zeichen zwischengespeichert werden.
Das "X" zum schließen des Fensters, Pfeiltasten, etc haben alle 2 Zeichen;
CHR(255) und dann noch ein Zeichen geben dann die Taste an. Wenn die Variable taste nur ein Zeichen aufnehmen kann, dann hat man 255, was dann keinem weiterbringt Zunge rausstrecken
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 20.11.2006, 20:10    Titel: Antworten mit Zitat

programmierer hat Folgendes geschrieben:
Nein, in taste können auch 2 Zeichen zwischengespeichert werden.
Das "X" zum schließen des Fensters, Pfeiltasten, etc haben alle 2 Zeichen;
CHR(255) und dann noch ein Zeichen geben dann die Taste an. Wenn die Variable taste nur ein Zeichen aufnehmen kann, dann hat man 255, was dann keinem weiterbringt Zunge rausstrecken

Ich weiss, in dem Konkretten Fall reicht aber 1 Zeichen zwinkern
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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 FreeBASIC. 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