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:

Programm jederzeit beendbar machen!

 
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
Danielo



Anmeldungsdatum: 24.11.2004
Beiträge: 1

BeitragVerfasst am: 24.11.2004, 12:10    Titel: Programm jederzeit beendbar machen! Antworten mit Zitat

Hallo,

habe eine ganz leichte Frage, ich möchte in meinem QB-Projekt, dass das Programm jederzeit mit der ESC-Taste abgebrochen werden kann und das unten rechts permant der Hinweis steht, dass das Programm mit ESC abgebrochen werden kann... zwinkern

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


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 24.11.2004, 14:33    Titel: Antworten mit Zitat

Schau mal in der MonsterFAQ und such nach dem ON KEY-Befehl.

Ansonsten verwende den Code
Code:
locate 25,1:?"Abbruch mit ESC";
(zumindest bei Screens mit 25 Zeilen, wie z.B. bei allen Screens mit 200 Pixelzeilen und dem Textscreen 0)
das ; ganz am Schluss des Prints verhindert das setzen des Cursors in die nächst tiefere Zeile. Da es diese ja nicht gibt (26) würde das gesamte Bild um eine Textzeile noch oben gescrollt werden. Durch das ";" wird ebendies verhindert.

Grüßle,
Mecki

PS: Aber wenn du CLS benutzt, musst du natürlich aufpassen! Gegen "scrollen" des Bildschirms via PRINT ist die Zeile 25 allerdings resistent, wird also nicht mit nach oben verschoben.
_________________
» 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
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 24.11.2004, 21:12    Titel: Antworten mit Zitat

Einige Artikel aus meiner Sammlung dazu:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html
(Bei professionellen Bildschirmmasken und INPUT-Ersatzroutinen ist die Abfrage von <Esc> auch immer ein Thema)

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/EreignisSchleife.html
(passt soweit auch ins Thema, als auch hier mit einem grossen WHILE-WEND gearbeitet werden sollte, der bei <Esc> verlassen wird)

Ganz generell: ON KEY würde ich eher vermeiden, denn schliesslich kann man sich dort irgendwo in einem undefinierten Zustand befinden, wo man besser nicht rausgehen sollte, z.B. Datei wird gerade geschrieben.

Ich löse es daher immer mit einer ganz grossen DO-LOOP-Schleife und einer Drinbleib%-Variable, die zu Beginn mit -1 (TRUE) initialisiert wird. Irgendwo in dieser grossen DO-LOOP-Schleife gibt es noch das berühmte
Code:
DO
  t$ = INKEY$
  ' evtl. noch INT 2Fh, AX=1680h aufrufen, damit das grüne Viereck
  ' im Windows 2000/XP-Taskmanager nicht bei 100% CPU-Last bleibt
  ' Siehe dazu http://www.ctyme.com/intr/rb-4530.htm
LOOP WHILE t$ = ""
SELECT CASE t$

für die einzelnen Tasten; ein
Code:
CASE CHR$(27)
  Drinbleib% = 0

Abschnitt gehört auch jeweils dazu und dort wird auch die grosse Schleife verlassen und das Programm beendet bzw. bei SUB ein entsprechender Rückgabewert liefert. Abgesehen davon brauche ich <Esc> nur für einen Schritt abbrechen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
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 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