Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
sebitoME
Anmeldungsdatum: 09.01.2008 Beiträge: 6
|
Verfasst am: 09.01.2008, 15:21 Titel: Wie kann ich aus Unterprogramm wieder ins Hauptprogramm? |
|
|
servus
ich habe ein kleines problem. ich muss ein informationssystem programmieren, bei dem ich mit unterprogrammen arbeiten will. was muss ich programmieren, damit ich aus dem ausgewählten "sub" wieder ins hauptprogramm komme, oder gibts vllt eine taste die man drücken muss?
Beispielprogramm:
Code: | cls
Dim Bild as any ptr
Screen 17,32
Bild = ImageCreate (640,400)
Bload "neu23.bmp",Bild
put (0,0),Bild,Pset
'Hintergrund------------------------------
declare sub Koeln
declare sub XX
Dim shared a as integer
'-----------------------------
locate 9,3: print"Make your Choice"
locate 10,3: input "a=";a
print
select case a
case is =1
Koeln 'Aufruf des Unterproramms Koeln
case is =2
XX 'Aufruf des Unterprogramms XX
end select
'----------------------------------
'Unterprogramm Koeln
sub Koeln
Dim Bild as any ptr
Bild = ImageCreate (300,200)
Bload "Koeln.bmp",Bild
put (315,150),Bild,Pset
locate 12,18: print "In this picture"
locate 13,18: print "you see the"
locate 14,18: print "Cologne Cathedral"
end sub
'----------------------------------
'Unterprogramm XX
sub XX
Dim Bild as any ptr
Bild =ImageCreate (260,360)
Bload "XX.bmp",Bild
put (380,150),Bild,Pset
locate 12,18: print "In this picture"
locate 13,18: print "you see the"
locate 14,18: print "University"
end sub
'---------------------
locate 20,18: print "The End"
sleep |
Editiert durch Moderator: Code-Tags hinzugefügt. (Sebastian) |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 09.01.2008, 15:28 Titel: |
|
|
erstmal willkommen im forum
dann würd ich vorschlagen, den code in code-boxen zu setzen (schaut übersichtlicher aus)
das macht man mit
[code]
Dein
Code
[/code]
zu deiner frage: wenn man am END SUB ankommt, springt freebasic automatisch zurück, wenn man vorher raus will, geht das mit EXIT SUB bzw EXIT FUNCTION _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
sebitoME
Anmeldungsdatum: 09.01.2008 Beiträge: 6
|
Verfasst am: 09.01.2008, 15:39 Titel: |
|
|
ja servus
also wenn ich das programm durchlaufen lasse. also hab ein sub ausgewählt über 1 oder 2 <enter>, wirds aufgerufen, wenn ich dann nochma enter drück, geht das progi wieder zu. und wenn ich da ne zahl eintippen will, auch.
das andere probier ich dann ma grad aus mit exit sub oder end function
schonma danke  |
|
Nach oben |
|
 |
sebitoME
Anmeldungsdatum: 09.01.2008 Beiträge: 6
|
Verfasst am: 09.01.2008, 18:23 Titel: |
|
|
Flo hat Folgendes geschrieben: | erstmal willkommen im forum
dann würd ich vorschlagen, den code in code-boxen zu setzen (schaut übersichtlicher aus)
das macht man mit
[code]
Dein
Code
[/code]
zu deiner frage: wenn man am END SUB ankommt, springt freebasic automatisch zurück, wenn man vorher raus will, geht das mit EXIT SUB bzw EXIT FUNCTION |
also ich hab das end sub durch EXIT SUB ersetzt, aber das bringt irgendwie nichts?! wenn ich das programm über quick run laufen lasse, dann kann ich ins unterprogramm springen und das wars dann. danach schließt das programm.
könnte das an meinem compiler liegen?! |
|
Nach oben |
|
 |
Digga

Anmeldungsdatum: 07.01.2006 Beiträge: 48
|
Verfasst am: 09.01.2008, 18:28 Titel: |
|
|
setz mal mal ein SLEEP ans ende deines Hauptprogramms, damit FB nachdem beenden der Sub auf eine Tastatureingabe wartet
gruß Digga |
|
Nach oben |
|
 |
sebitoME
Anmeldungsdatum: 09.01.2008 Beiträge: 6
|
Verfasst am: 09.01.2008, 18:38 Titel: |
|
|
Digga hat Folgendes geschrieben: | setz mal mal ein SLEEP ans ende deines Hauptprogramms, damit FB nachdem beenden der Sub auf eine Tastatureingabe wartet
gruß Digga |
alles klaro, dat hab ich.
kann ich nicht auch sowas machen wie, wenn ich im sub drin bin, um von da an den anfang zu springen?
input"Hauptmenue="; Hauptmenue
If Hauptmenue = 1 then gosub Hauptmenue |
|
Nach oben |
|
 |
Digga

Anmeldungsdatum: 07.01.2006 Beiträge: 48
|
Verfasst am: 09.01.2008, 18:42 Titel: |
|
|
muss wenn:
Code: |
input"Hauptmenue="; Hauptmenue
If Hauptmenue = 1 then exit sub
|
sofern ich mich jetzt nicht ganz irre |
|
Nach oben |
|
 |
sebitoME
Anmeldungsdatum: 09.01.2008 Beiträge: 6
|
Verfasst am: 09.01.2008, 18:54 Titel: |
|
|
Digga hat Folgendes geschrieben: | muss wenn:
Code: |
input"Hauptmenue="; Hauptmenue
If Hauptmenue = 1 then exit sub
|
sofern ich mich jetzt nicht ganz irre |
danke dat funzt schonma.
wenn ich das richtig sehe, dann geht freebasic ja die daten von oben nach unten durch beim programmverlauf!?
wenn ich dann jez wieder in mein hauptmenue will, muss ich dann im prinzip wenn ich den text schreib, meinen anfang wieder unten drunter setzen, damit man die möglichkeit hat von vorne auszuwählen!? oder gibts eine möglichkeit, dass der da automatisch wieder hinspringt? |
|
Nach oben |
|
 |
Digga

Anmeldungsdatum: 07.01.2006 Beiträge: 48
|
Verfasst am: 09.01.2008, 19:01 Titel: |
|
|
Eine der Möglichkeiten ist dein Hauptprog in eine Schleife zu setzten.
Bei
Code: |
do
Hauptprog
loop until taste = chr(27)
|
Bei dem Beispiel läuft dein Prog solange bist du die Escape-Taste zum beenden der Schleife drückst.
Dafür mußt du aber noch zwei Zeilen Code einfügen:
1. am Anfang bei deinen Deklarationen
Code: | dim taste as integer |
2. im Hauptprog
|
|
Nach oben |
|
 |
sebitoME
Anmeldungsdatum: 09.01.2008 Beiträge: 6
|
Verfasst am: 09.01.2008, 19:15 Titel: |
|
|
k, schonma danke. muss ich ma gucken ob ich das umgesetzt bekomm  |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 09.01.2008, 20:53 Titel: |
|
|
Flo hat Folgendes geschrieben: | ... dann würd ich vorschlagen, den code in code-boxen zu setzen | ... dat heißt "TAG" .. Code-TAG's .. (das is informativer)
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 10.01.2008, 20:21 Titel: |
|
|
Steh ich auf'm Schlauch, oder ist das nicht das was du willst?
Code: |
Declare Sub NeSub(ByVal Param1 As Integer)
NeSub(1337)
Sub NeSub(ByVal Param1 As Integer)
If Param1=1337 Then Exit Sub
Print "Nicht 1337 genug!"
End Sub
|
_________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
|