 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Phill
Anmeldungsdatum: 19.11.2006 Beiträge: 1
|
Verfasst am: 19.11.2006, 15:32 Titel: Zurück zum Startbildschirm |
|
|
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 |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 19.11.2006, 18:21 Titel: |
|
|
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.
Ein String braucht viel mehr Speicher und Rechenzeit als nötig.
Die Sprache als Nummern Code ist Sinnvoller.
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 |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 19.11.2006, 18:38 Titel: |
|
|
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  _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 20.11.2006, 20:10 Titel: |
|
|
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  |
Ich weiss, in dem Konkretten Fall reicht aber 1 Zeichen  _________________ 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 |
|
 |
|
|
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.
|
|