IntegerInput - Eingaberoutine für natürliche Zahlen
Übersicht

![]() |
SpionAtomBetreff: IntegerInput - Eingaberoutine für natürliche Zahlen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ist eine Function für die Eingabe von natürlichen Zahlen.
Ziffern können die Zifferleiste oder über den Nummernblock eingegeben werden. Mit der Rücktaste wird die letzte Ziffer gelöscht. Eingabebestätigung muss man selber implementieren (siehe Beispiel). Code: [AUSKLAPPEN] Graphics 400, 300, 0, 2
SetBuffer BackBuffer() SetFont LoadFont("Arial", 24, 0) Local eingabeZahl, ausgabe$ Repeat Cls ;Eingabe eingabeZahl = IntegerInput(eingabeZahl, 50, 100) ;Enter wurde gedrückt If KeyHit(28) Or KeyHit(156) Then ausgabe = "Die letzte Eingabe lautet: " + eingabeZahl eingabeZahl = 0 FlushKeys() End If ;Ausgabe Text 0, GraphicsHeight() - StringHeight("|"), ausgabe Flip() Until KeyDown(1) End ;Eingabefunktion zur Eingabe von natürlichen Zahlen (also keine negativen Zahlen) ;zahl - ist die Variable für die Eingabe ;x, y - sind die Position ;linienlaenge - ist die Länge der Eingabelinie, muss nicht angegeben werden ;maximaleStellen - begrenzt die Eingabe auf eine maximale Anzahl an Stellen, muss nicht angegeben werden Function IntegerInput(zahl, x, y, linienlaenge = 100, maximaleStellen = 3) Local tastegedrueckt = False Local ziffergedrueckt = False, gedrueckteZiffer If KeyHit(11) Or KeyHit(82) Then gedrueckteZiffer = 0: tastegedrueckt = True: ziffergedrueckt = True If KeyHit(2) Or KeyHit(79) Then gedrueckteZiffer = 1: tastegedrueckt = True: ziffergedrueckt = True If KeyHit(3) Or KeyHit(80) Then gedrueckteZiffer = 2: tastegedrueckt = True: ziffergedrueckt = True If KeyHit(4) Or KeyHit(81) Then gedrueckteZiffer = 3: tastegedrueckt = True: ziffergedrueckt = True If KeyHit(5) Or KeyHit(75) Then gedrueckteZiffer = 4: tastegedrueckt = True: ziffergedrueckt = True If KeyHit(6) Or KeyHit(76) Then gedrueckteZiffer = 5: tastegedrueckt = True: ziffergedrueckt = True If KeyHit(7) Or KeyHit(77) Then gedrueckteZiffer = 6: tastegedrueckt = True: ziffergedrueckt = True If KeyHit(8) Or KeyHit(71) Then gedrueckteZiffer = 7: tastegedrueckt = True: ziffergedrueckt = True If KeyHit(9) Or KeyHit(72) Then gedrueckteZiffer = 8: tastegedrueckt = True: ziffergedrueckt = True If KeyHit(10) Or KeyHit(73) Then gedrueckteZiffer = 9: tastegedrueckt = True: ziffergedrueckt = True ;Rücktaste gedrückt, letzte Stelle löschen If KeyHit(14) Then tastegedrueckt = True zahl = zahl / 10 End If ;Ziffer gedrückt, Ziffer an letzte Stelle anfügen, ;aber nur, wenn die maximale Anzahl erlaubten ziffern nicht überschritten wird If tastegedrueckt Then If ziffergedrueckt Then Local stellen = 0, n = zahl While n > 0 stellen = stellen + 1 n = n / 10 Wend If stellen < maximaleStellen Then zahl = zahl * 10 + gedrueckteZiffer End If FlushKeys() End If ;Der Eingabebereich wird durch eine Linie gekennzeichnet Rect x, y + StringHeight("|"), linienlaenge + 1, 1 ;Zahl ausgeben Local cursor$ = "_" If (MilliSecs() Mod 1000) < 500 Then cursor = "" Local ausgabe$ = cursor Text x, y, zahl + cursor ;Zahl zurückgeben Return zahl End Function |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group