Input-Umgehung

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Spikespine

Betreff: Input-Umgehung

BeitragFr, Apr 30, 2004 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hola!
Wie ich gehört habe, soll auf man Befehle wie "Print", "Input" oder "Locate" verzichten. Wie soll ich aber Input umgehen, wenn ich eine Eingabeaufforderung machen will?
 

Blitzkrieg Bop

BeitragFr, Apr 30, 2004 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
such doch mal im forum nach 'eingaberoutine'
~ Hey Ho Let's Go ~

Firstdeathmaker

BeitragFr, Apr 30, 2004 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
versuchs mal mit getkey und text.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
 

mOnK

BeitragFr, Apr 30, 2004 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Buch von Rene gibs auch eine simple Lösung mit GetKey Wink

Spikespine

BeitragFr, Apr 30, 2004 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hola!
Ich hab jetzt mal mit Getkey ein kleines Programmchen geschrieben, das Ziffern schreibt (Ich brauche eigentlich nur Zahlen, die einzugeben sind).
Code: [AUSKLAPPEN]
Asci = 48
While Not KeyHit(1)
   A = GetKey()
   For I = 0 To 9
      If A = Asci Then Write I
      Asci = Asci + 1
      If Asci > 57 Then Asci = 48
      If I > 9 Then I = 0
   Next
Wend


Das ist schonmal gut so, aber weiß jemand, wie ich es anstelle dass wenn ich die Eingabetaste drücke (If Keyhit(28) then...) alle bereits geschriebenen Zahlen gespeichert werden Question
 

Edlothiol

BeitragFr, Apr 30, 2004 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht viel einfacher:
Code: [AUSKLAPPEN]
While Not KeyHit(1)
  k = GetKey()
  If k <> 0 Then
    Write Chr(k)
  End If
Wend

Chr() konvertiert einen ASCII - Wert in das entsprechende Zeichen. Wenn du nur Zahlen haben willst musst du das eben auch noch abfragen.
Return scheint die 13 zu sein, vielleicht klappts so:
Code: [AUSKLAPPEN]
While Not KeyHit(1)
  k = GetKey()
  If k = 13 Then
    Exit
  End If
  If k <> 0 Then
    Write Chr(k)
  End If
Wend

Du musst natürlich auch noch den String speichern etc.

Edit: Argh! Hatte übersehen dass GetKey nicht anhält.

Firstdeathmaker

BeitragFr, Apr 30, 2004 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wäre es hier mit?

Code: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer BackBuffer()

Global Zeile$
Global Ausgabe$

Repeat

taste=GetKey()
If taste<>0
   If taste>31
      Zeile=Zeile+Chr(taste)
      taste=0
   ElseIf taste<=31                   ;Wenn Enter(31) gedrückt...
      Ausgabe=Zeile
      Zeile=""      
   EndIf
EndIf

Cls
Text 10,10,Zeile
Text 10,20,Ausgabe
Flip

Until KeyHit(1)

End



Die genauen Werte für Enter oder andere Spezialtasten findest du in der Onlinehilfe.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group