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: silizium-net.de | Portfolio: Triton.ch.vu

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