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:

Sub abbrechen/verlassen

 
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
MegaFritz



Anmeldungsdatum: 22.11.2008
Beiträge: 5

BeitragVerfasst am: 04.01.2009, 21:18    Titel: Sub abbrechen/verlassen Antworten mit Zitat

Hi Leute,

ich stehe als Anfänger vor einem Problem:

Wenn ich einen Sub aufrufe, dann muss der komplette Sub durchlaufen, bis ich etwas anderes machen kann.

Kann ich z.B. durch drücken der "ESC"-Taste das Verlassen des Subs bewirken, egal an welcher Stelle im Sub sich das Programm abspielt?

Ich möchte damit sicherstellen, dass man trotz "Verklicken" im Programm nicht warten muss, bis man die gewünschte Funktion anwählen kann.

Hoffe, ihr habt das Problem verstanden.

Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.01.2009, 21:19    Titel: Antworten mit Zitat

Code:
if inkey = chr(27) then exit sub

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MegaFritz



Anmeldungsdatum: 22.11.2008
Beiträge: 5

BeitragVerfasst am: 04.01.2009, 21:22    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
Code:
if inkey = chr(27) then exit sub


Das geht leider nicht....

Das Unterprogramm wartet auf die Eingabe einer Variablen....
Vielleicht gehts daher nicht?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MegaFritz



Anmeldungsdatum: 22.11.2008
Beiträge: 5

BeitragVerfasst am: 04.01.2009, 21:24    Titel: Antworten mit Zitat

Code:

sub Entfernungen()
   
    IF INKEY = CHR(27) THEN EXIT SUB
   
    a=0
   
    Hintergrund=imagecreate (1024,768)
    bload "Resthintergrund.bmp",Hintergrund
    put(160,96), Hintergrund, pset
    imagedestroy Hintergrund
   
    draw string (400,690), !"Geben Sie die Koordinaten zweier Orte an"
    color rgb (255,0,0)                 
    draw string (262,720), !"Hinweis:"
    color rgb(255,255,255)             
    draw string (330,720), !"Die Winkel in n\148rdlicher Breite bzw. \148stlicher L\132nge sind positiv anzugeben,"
    draw string (246,750), !"w\132hrend Winkel in s\129dlicher Breite bzw. westlicher L\132nge negativ angegeben werden m\129ssen!"
   
    'cos f = sin (Breite 1) · sin (Breite 2) + cos (Breite 1) · cos (Breite 2) · cos (Länge 2 - Länge 1)
    for i=0 to 255
        Weltkarte=imagecreate (800,351)
        bload "Weltkarte.bmp", Weltkarte
        put (192,120), Weltkarte, alpha ,i
        imagedestroy Weltkarte
    next i   
   
    draw string (192,496), !"Beispieldaten"
    draw string (192,528), !"Siegen   (50,87\167 N \179     8\167 O)"
    draw string (192,560), !"Nuuk     (64.17\167 N \179 51,72\167 W)"
    draw string (192,592), !"Sydney   (33.83\167 S \179 151,2\167 O)"
    draw string (192,624), !"Brasilia (15.78\167 S \179 47,93\167 W)"
 
    draw string (700,496), !"Nord/S\129d-Angabe des 1.Ortes:" '1.Breite
    locate 32,117: color RGB(255,255,255),RGB(0,0,20) :input"", b
    draw string (700,528), !"West/Ost-Angabe des 1.Ortes:" '1.Länge
    locate 34,117: input"", c
    draw string (700,560), !"Nord/S\129d-Angabe des 2.Ortes:" '2.Breite
    locate 36,117: input"", d
    draw string (700,592), !"West/Ost-Angabe des 2.Ortes:" '2.Länge
    locate 38,117: input"", e
   
    b=b*pi/180
    d=d*pi/180
    f=sin(b)*sin(d)+cos(b)*cos(d)*cos((e-c)*pi/180)
    f=acos(f)
    L=f*6378 'Der Erdradius beträgt in etwa 6378 km
    draw string (700,624), !"Die Entfernung betr\132gt:          km"
    locate 40,111: ?L
           
end sub


Vielleicht ists damit klarer....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.01.2009, 21:29    Titel: Antworten mit Zitat

INPUT kann man nicht abbrechen. da musst du dir schon einen INPUT-Ersatz schreiben.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MegaFritz



Anmeldungsdatum: 22.11.2008
Beiträge: 5

BeitragVerfasst am: 04.01.2009, 21:32    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
INPUT kann man nicht abbrechen. da musst du dir schon einen INPUT-Ersatz schreiben.


Alles klar!
Danke für die Info!
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 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