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:

INPUT bei einem Countdowntimer?

 
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 960
Wohnort: Niederbayern

BeitragVerfasst am: 12.05.2013, 21:56    Titel: INPUT bei einem Countdowntimer? Antworten mit Zitat

Ich habe ja so einen Countdowntimer in einem meiner Programme drin.

Nun ist es aber so, dass dieser bei Input nicht mehr funktioniert. Programm stoppt! Gibt es eine Möglichkeit trotz Eingabe von Zahlen bzw. Buchstaben die Zeit auf Null laufen zu lassen. Wahrscheinlich nicht oder? Wenn dann möglicherweise ohne Input-Befehl???

Meine 1. Idee klappt leider nicht. Auch die 2. Idee war nicht erfolgreich. Und eine 3. Idee habe ich bisher nicht.

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4215
Wohnort: ~/

BeitragVerfasst am: 12.05.2013, 22:18    Titel: Antworten mit Zitat

Da wirst du dir wohl eine eigene INPUT-Routine schreiben müssen.
Code:
DIM AS STRING taste, eingabe
DO
  taste = INKEY
  IF taste = CHR(13) THEN EXIT DO    ' Return-Taste
  IF taste <> "" THEN
    eingabe &= taste
    PRINT taste;
  END IF
  ' Hier jetzt noch die Countdown-Umsetzung
  ' ...
  SLEEP 1
LOOP

Da muss natürlich noch die Backspace-Taste rein, und dann kann man es noch beliebig erweitern (Pfeiltasten und Einfügen an der Cursorposition, nur Einfügen der druckbaren Zeichen, ...), aber dazu gibt es bereits eine Menge Vorschläge im Forum und im Portal.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 12.05.2013, 22:28    Titel: Antworten mit Zitat

Würde es sehr ähnlich lösen wie nemored, das ganze könnte man auch als Funktion ausbauen zB. so:
Code:

Function Eingabeverarbeitung(byval InkeyString as String, byref InputString as String) as Integer
    Static EingabeString as String
   
    Dim Status           as Integer = 0
    Dim EingabeChar      as UByte
    Dim StringLen        as Integer = Len(InkeyString)
   
    For l as Integer = 0 to StringLen-1
        EingabeChar = InkeyString[l]
        Select Case as Const EingabeChar
            Case 13 ''Enter
                InputString = EingabeString
                Status = NOT 0              ''Eingabe bestätigen (Rückgabewert TRUE)
                EingabeString=""            ''Eingabe leeren
           
            Case Else ''Alle anderen 'Zeichen' der Eingabe hinzufügen
                EingabeString += chr(EingabeChar)
                If (Status = 0) Then InputString = EingabeString

        End Select
    Next l
   
    Return Status
End Function

Dim KeyboardBuffer as String
Dim InputString    as String

Do
    KeyboardBuffer = Inkey
    'viel programm kram....
   
    If Eingabeverarbeitung(KeyboardBuffer, InputString) = 0 Then 'solange Enter nicht gedrückt wurde
        locate 1,1:?InputString 'Eingabe Anzeigen
    Else
        ''Eingabe verarbeiten...
        ?"Du hast " & InputString & " Eingegeben."
    End If

    'noch mehr programmkram
Loop until multikey(&h01)


Ist vom Prinzip fast genauso, auch hier müsste noch backspace ect. eingebaut werden...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4215
Wohnort: ~/

BeitragVerfasst am: 12.05.2013, 23:05    Titel: Antworten mit Zitat

Ich persönlich würde ja darauf zurückgreifen. grinsen
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 12.05.2013, 23:09    Titel: Antworten mit Zitat

Ich wusste das wir irgendwo sowas ähnliches schon mehrfach (auch schon öffter hier im Forum) hatten, habs nur irgendwie nicht gefunden happy
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
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