Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 14.05.2006, 18:51 Titel: Globale Befehle |
|
|
Ist es moeglich Befehle festzulegen, die von jedem Sub usw. aus jederzeit ausgefuehrt werden koennen ohne, dass diese nochmal in jedem sub aufgefuehrt werden muessen. Klingt furchtbar Beispiel:
Ich will, dass mein Programm jederzeit mit ESC abbrechbar ist - dies moechte ich allerdings nur einmal in meinem Programm auffuehren - halt global
geht das ?
kann mir jemand mal die on key funktion erklaeren? (kein Verweis auf FAQ bitte) |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 14.05.2006, 19:18 Titel: |
|
|
Im Prinzip bietet Dir ON KEY exakt das Gewünschte. Allerdings würde ich schon eher eine Return-Code den Vorzug geben. Siehe dazu
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html
Die dortige INPUT-Ersatz-Routine fragt ebenfalls <ESC> ab und gibt dies als Status in Verl% zurück => Hauptprogramm sollte dementsprechend reagieren. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 15.05.2006, 15:19 Titel: |
|
|
dann muesste ich immer noch wissen wie on key funktioniert |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 15.05.2006, 17:20 Titel: |
|
|
Einfach mal den Befehl in QB eingeben und F1 drücken?
Resultat bei QBasic 1.1:
Code: | KEY aktiviert, deaktiviert oder unterbricht die Ereignisverfolgung
einer Taste. Ist die Ereignisverfolgung aktiviert, verzweigt KEY jedesmal
zu einem Unterprogramm, wenn eine Taste gedrückt wurde.
KEY(n%) ON
KEY(n%) OFF
KEY(n%) STOP
ON KEY(n%) GOSUB Zeile
■ n% Ein Wert, der eine Funktionstaste, Richtungstaste
oder benutzerdefinierte Taste angibt:
n% Taste
══════ ════════════════════════════════════════════
0 Alle hier aufgeflisteten Tasten (nur
KEY(0) ON, KEY(0) OFF und KEY(0) STOP).
1-10 Funktionstasten F1-F10.
11 NACH-OBEN-TASTE.
12 NACH-LINKS-TASTE.
13 NACH-RECHTS-TASTE.
14 NACH-UNTEN-TASTE.
15-25 Benutzerdefinierte Tasten. Für mehr Information
siehe ◄Deklaration benutzerdefinierter Tasten►.
30, 31 Funktionstasten F11 und F12.
■ KEY(n%) ON Aktiviert die Ereignisverfolgung für eine angegebene
Taste.
■ KEY(n%) OFF Deaktiviert die Ereignisverfolgung einer Taste.
■ KEY(n%) STOP Unterbricht die Ereignisverfolgung. Ereignisse
werden ausgeführt, sobald die Verfolgung mit
KEY ON aktiviert ist.
■ Zeile Die Marke oder die Nummer der ersten Zeile
des Unterprogramms zur Ereignisverfolgung.
Beispiel:
'Dieses Beispiel verlangt, daß die Tasten Caps- und Num Lock aus sind.
CONST ESC = 27
KEY 15, CHR$(&H4) + CHR$(&H1F) 'Setzt Ctrl+S als KEY 15.
ON KEY(15) GOSUB PauseHandler
KEY(15) ON
WHILE INKEY$ <> CHR$(ESC)
PRINT "Drücken Sie ESC um abzubrechen, Ctrl+S für Pause."
PRINT
WEND
END
PauseHandler:
SLEEP 1
RETURN
|
_________________ 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 |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 15.05.2006, 17:33 Titel: |
|
|
oh, vielen vielen dank, dass mit F1 wusste ich nicht |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 18.05.2006, 19:08 Titel: |
|
|
klappt trotzdem nicht
selbst das Beispielprogramm aus dem FAQ funktioniert nicht
brauch ich dafuer 'ne Bibliothek ? |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 18.05.2006, 20:52 Titel: |
|
|
Die ON Xxx-Befehlsfamilie schaut in vielen Fällen auf den ersten Blick ganz interessant aus, aber ein wichtiges Problem bleibt damit ungelöst: Sauberer Ausstieg aus dort heraus, wo der ESCapende Benutzer gerade an den Anfang "flüchten" möchte.
Meistens befindet man sich dort, wo man <Esc> drücken möchte, ziemlich verschachtelt in etlichen Unterprogrammen (z.B. im Hauptdesk hat man die Applikation "Text" aufgerufen, dort den Dialog "Öffnen", innerhalb dieses Dialogs befindet man sich gerade in einer Stringeingaberoutine), diese haben alle ihren CALL-Stack, womit man nicht einfach so GOTO-mässig herausgehen kann und sollte. Deswegen auch mein Hinweis für ein Programm-Design mit dem Rückgabe-Code. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.05.2006, 20:56 Titel: |
|
|
jo als not-ausgang is das vielleicht brauchbar, so ne "egal was is sofort abschalten"-Notfalltaste is ja auch ab und zu mal was nettes
/edit: wobei eigentlich ists auch ganz lustig sonst weil man kann ja an den kritischen stellen einfach key(xyz) off machen und die ereignisverfolgung zwischenzeitlich deaktivieren.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
|