Verfügbare Informationen zu "Eingaberoutine"
Qualität des Beitrags: Beteiligte Poster: Darkfreddy - SenTro - Miami Forum: Dark Sentronic aus dem Unterforum: Programmieren Antworten: 14 Forum gestartet am: Sonntag 03.07.2005 Sprache: deutsch Link zum Originaltopic: Eingaberoutine Letzte Antwort: vor 18 Jahren, 30 Tagen, 22 Stunden, 42 Minuten
Alle Beiträge und Antworten zu "Eingaberoutine"
Re: Eingaberoutine
Darkfreddy - 04.07.2005, 13:51Eingaberoutine
Code:
Graphics 640,480,16,1
SetBuffer BackBuffer()
Global antwort$,backtime = MilliSecs(),ccolor
While Not KeyDown(1)
befehl$ = newinput$(100,100,300,200,">>", 10)
If befehl$ = "exit" Then End
Text 100,100, befehl$
Flip
Cls
Wend
Function newinput$(x1,y1,x2,y2,frage$,maxl)
a = GetKey()
If a => 32 And a <= 255 And Len(antwort$) <= maxl-1 Then antwort$ = antwort$ + Chr$(a)
If KeyDown(28) Then Return antwort$
If KeyDown(14) Or KeyDown(203) And Len(antwort$) > 0 And MilliSecs()-backtime > 125 Then
antwort$ = Left(antwort$,(Len(antwort$)-1))
backtime = MilliSecs()
End If
Color 25,100,200
Rect x1, y1,x2-x1, y2-y1,1
Color 10,50,150
Rect x1, y1,x2-x1, y2-y1,0
textlange = StringWidth(antwort$) ;Blinkener Cursor
texthohe = StringHeight(antwort$)
fragelange = StringWidth(frage$)
Color 0,50,ccolor
Rect x1+28+(Len(antwort$)*8),y1+4,10,texthohe-1,1
ccolor = ccolor + 5
If ccolor = 255 Then ccolor = 100
Color 255,255,255
Text x1+3,y1+3, frage$ + " " + antwort$
End Function
Re: Eingaberoutine
SenTro - 04.07.2005, 20:21
wunderbar! Des übernehm ich dann ins Fragentool, sobald des Master läuft
Re: Eingaberoutine
Darkfreddy - 21.07.2005, 11:13
ist gebongt :)
läuft des jetzt :?: :twisted:
Re: Eingaberoutine
SenTro - 19.08.2005, 21:58Fertig!!
Hab die Eingabe verbessert und in funktionen eingebaut. Editor ist auch entsprechend abgeändert
Re: Eingaberoutine
Darkfreddy - 20.08.2005, 16:25
sehr schön
Re: Eingaberoutine
SenTro - 15.12.2005, 20:48
So, nach längerer Pause:
Eingabe voll integrierbar!!! :D 8) Allerdings mit Hilfe von 4 zusätzlichen Globals. :? Edit lass ich mit alter, weil da bringt die neue net so viel Vorteil, dass sich des umschreiben lohnt.
@ Darkfreddy: Wie schauts am Samstag aus? Die Franzi kommt wahrscheinz auch
Re: Eingaberoutine
SenTro - 29.12.2005, 12:21
Eingabe is Perfekt!!!!! 8) 8) 8)
Re: Eingaberoutine
Darkfreddy - 26.02.2006, 23:23
Wenn die Eingabe so perfekt ist, kannst du ja dein "Baby" auch posten....
Re: Eingaberoutine
SenTro - 27.02.2006, 01:32Voilá, mein Baby:
bitte sehr:
den Pfad fürs Hintergrundbild halt abändern;
Zitat: Graphics 1024,768,16,1
Global bild=LoadImage("C:/Dokumente und Einstellungen/Malik/Eigene Dateien/Eigene Bilder/Computer/Wallpapers/nfs-underground-02.bmp")
Global fertig=False ,ccolor, backtime, block=True, cursorpos, uberschreiben=False
satz$=""
SetBuffer BackBuffer()
Repeat
Cls
DrawImage bild,1,1
satz=eingabe$(100,100,250,0,255,0,satz$)
If fertig=True Then Text 1,1,"Die Eingabe lautet: "+satz$ : satz$="" : fertig=False: Flip: WaitKey :
Flip
Until KeyDown(1)
End
Function Eingabe$(x1,y1,maxl,r=0,g=0,b=0,antwort$="")
Local a,zusammenfuegen=False, zeichen$[250]
fertig=False
If maxl>250 Then maxl=250
If ccolor=0 Then ccolor=100
If block=True Then cursorpos=Len(antwort$)
laenge=Len(antwort$)
a = GetKey()
; Zerlegung (evtl. mit If-Bedingung => nur bei Veränderungen innerhalb des Strings)
For i=1 To laenge
zeichen[i]=Mid$(antwort$,i,1)
Next
;Zeichen anfügen
If a => 32 And a <= 255 And cursorpos=laenge And laenge <= maxl-1 Then antwort$ = antwort$ + Chr$(a) block=False cursorpos=cursorpos+1
;Enter
If KeyDown(28) And block= False Then fertig=True block=True
;Backspace am Schluss
If KeyDown(14) And laenge > 0 And MilliSecs()-backtime > 125 And cursorpos=laenge Then
antwort$ = Left(antwort$,(laenge-1))
backtime = MilliSecs()
cursorpos=cursorpos-1
End If
; links/rechts
If KeyDown(203) And cursorpos>0 And MilliSecs()-backtime > 100 Then backtime = MilliSecs() cursorpos=cursorpos-1
If KeyDown(205) And cursorpos<>laenge And MilliSecs()-backtime > 100 Then backtime = MilliSecs() cursorpos=cursorpos+1
;Einfg/Überschr - Umschalten
If KeyDown(210) And MilliSecs()-backtime > 200 Then
Select uberschreiben
Case True: uberschreiben=False
Case False:uberschreiben=True
End Select
backtime = MilliSecs()
EndIf
; überschreiben
If a => 32 And a <= 255 And cursorpos<laenge And uberschreiben=True Then
zeichen[cursorpos+1]=Chr$(a)
antwort$=""
For i=0 To laenge
antwort$=antwort$+zeichen[i]
Next
cursorpos=cursorpos+1
EndIf
; entfernen und Backspace innerhalb
If (KeyDown(211) Or KeyDown(14)) And MilliSecs()-backtime > 100 And cursorpos<laenge Then
For i=cursorpos To laenge-1
If KeyDown(211) Then zeichen[i+1]=zeichen[i+2] Else zeichen[i]=zeichen[i+1]
Next
antwort$=""
For i=0 To laenge-1
antwort$=antwort$+zeichen[i]
Next
backtime=MilliSecs()
If KeyDown(14) Then cursorpos=cursorpos-1
EndIf
; Einfügen
If a => 32 And a <= 255 And cursorpos<laenge And uberschreiben=False Then
For i=laenge To cursorpos Step -1
zeichen[i+1]=zeichen[i]
Next
zeichen[cursorpos+1]=Chr$(a)
antwort$=""
For i=0 To laenge+1
antwort$=antwort$+zeichen[i]
Next
cursorpos=cursorpos+1
EndIf
;Blinkener Cursor
textlange = StringWidth(antwort$)
texthohe = StringHeight(antwort$)
Color 0,50,ccolor
If cursorpos<laenge Then Rect x1 +(Len(Left(antwort$,cursorpos))*8),y1+4,10,texthohe-1,1
If cursorpos=laenge Then Rect x1+3+(Len(Left(antwort$,cursorpos))*8),y1+4,10,texthohe-1,1
ccolor = ccolor + 5
If ccolor = 255 Then ccolor = 100
;Ausgabe
Color r,g,b
Text x1,y1+3, antwort$
a=""
Return antwort$
End Function
Re: Eingaberoutine
Miami - 28.02.2006, 15:47
wisst ihr scho,wann ich die eingaberoutine haben kann?
Re: Eingaberoutine
Darkfreddy - 28.02.2006, 19:43
ab sofort eigentlich
Re: Eingaberoutine
SenTro - 03.03.2006, 19:00
@Miami: Geb mit mal die Auflösung von deinem Monitor, dann änder ich des Fragentool ab, weil ich bin mir net sicher, ob der 1024*768 verträgt :? Kommst des Wochenende mal vorbei, dann geb ich's dir...
Re: Eingaberoutine
SenTro - 08.03.2006, 18:47nochmal Verbesserungen
Eingabe doch noch nicht perfekt; Hab grad "Pos1"- und "Ende"-Unterstützuhng programmiert und die Integrierbarkeit ins Hauptprogramm verbessert, sowie die If-Bedingung für die Zerlegung formuliert und nochn paar Kleinigkeiten, die ich nimmer genau weiß. Außerdem pass ich den Frageneditor grad an die neue Eingabe an, (@Miami:) also kann des noch 1-2 Tage dauern, bis ich dir des geben kann.
Re: Eingaberoutine
SenTro - 26.03.2006, 16:31
Sorry, Miami, anscheinend eher 1-2 Wochen, hab in letzter Zeit gar nix gemacht, hab ka Lust zu nix ghabt :oops: , aber ich kümmer mich noch drum...
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Dark Sentronic
Sichel des Archimedes - gepostet von Darkfreddy am Samstag 26.11.2005
spielvorschläge - gepostet von franzi am Freitag 13.01.2006
Ähnliche Beiträge wie "Eingaberoutine"