Simpler "Input-ersatz" (Mit Blinkbalken)

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Schranz0r

Betreff: Simpler "Input-ersatz" (Mit Blinkbalken)

BeitragMo, Nov 06, 2006 3:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute

Ich wurde schon 2 mal gefragt, ob ich eine solche Funktion habe.(Hatte ich nicht)
Daraufhin hab ich kurz mal eine getipt, und hoffe, das es evtl. doch
mehr als 2 Leute gebrauchen können.

BlitzBasic: [AUSKLAPPEN]
Graphics 640,480,0,2

Global Input_Name$ ; Input Name
Global Time = MilliSecs() ; Prüfen wie lange Windows schon Läuft( Wird für Blinkeffekt benötigt)
Global Output_Name$ ; Output Name
Global Textlaenge ; Textlänge Deklarieren
Global Max_Zeichen = 10 ; Maximal 10 Zeichen
Global Pixel_pro_Zeichen = 8 ; Breite der Buchstaben Pixel

;----8 Pixel ist für die Standart Font (Diese ist pro Buchstabe 8 Pixel breit) bei mir zumindest :D ----

Textlaenge = Pixel_pro_Zeichen * Max_Zeichen ; in diesen fall "Textlaenge = 8 * 10"

;-------------------------------------------------------------------------------------------------------
SetBuffer BackBuffer()

Repeat

Eingabe(20,20) ; Function aufrufen, und positionieren x,y


Text 20,450,"Output_Name: "+ Output_Name$

Flip : Cls
Until KeyHit(1)
End


Function Eingabe(x,y)

; Aus den Tastendruck, den ASCII-Wert übergeben
Get_Key=GetKey()
; Wenn ASCII-Wert über 31 ist Ziffern addieren (alles unter 31 sind Steuerzeichen
If Get_Key > 31 Then Input_Name$ = Input_Name$ + Chr$(Get_Key)
; wenn Backtaste gedrückt wurde Ziffer löschen
If Get_Key = 8 And Len(Input_Name$) > 0 Then Input_Name$ = Left(Input_Name$,Len(Input_Name$)-1)
; Maximale Stringbreite prüfen
If StringWidth(Input_Name$)>Textlaenge Then Input_Name$ = Left(Input_Name$,Len(Input_Name$)-1)
; Wenn Taste "Enter" gedrückt wurde, Namen übergeben
If KeyHit(28) Then Output_Name$ = Input_Name$
; Erhöht Variable "Laufzeit" um 1 pro halbe Sekunde(für den typischen Blinkbalken)
Laufzeit = (MilliSecs() - Time) / 500

Blink=Laufzeit Mod 2 ; Der "Blinkgenerator" Mod ermittelt den Restwert aus der Division zweiter Zahlen

If Blink = 1 Then ; wenn Blink 1 ist, dann
I$ = "|" ; zeichne |
Else ; andernfalls
I$ = "" ; Lösche |
EndIf

Text x,y,"Mein Input: "+Input_Name$+I$ ; Ausgabe der Eingabe <--- LOL

End Function


Ist bestimmt nicht die schönste Lösung, aber sie funktionert.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Triton

BeitragMo, Nov 06, 2006 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Nichts für ungut, aber es gibt längst viele viele Eingaberoutinen in diesem Codearchiv die tw. auch mit mehr Funktionen (und auch tollen blinkenden Cursorn Wink) aufwarten können.
Coding (alt, aber bleibt online): silizium-net.de | Was ich sonst so mache (aktuell): Zuender.org

Schranz0r

BeitragMo, Nov 06, 2006 22:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Es geht ja um nen Simplen(war ja so erfragt) , und nicht um ein Highend Very Happy

Soll ja jeder verstehen, wie das im groben funktioniert.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group