Eingaberoutine

Dark Sentronic
Verfügbare Informationen zu "Eingaberoutine"

  • Qualität des Beitrags: 0 Sterne
  • 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:51

    Eingaberoutine
    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:58

    Fertig!!
    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:32

    Voilá, 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:47

    nochmal 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"