TGC Codebase Backup



TextBox by Anonymous Coder

16th May 2008 9:25
Summary

TextBox on Dark Basic Pro



Description



Code
                                    ` This code was downloaded from The Game Creators
                                    ` It is reproduced here with full permission
                                    ` http://www.thegamecreators.com
                                    
                                    set display mode 1024,768,16

fname$=""

do
  cls rgb(0,0,0)
  set cursor 325,252
  print "Firstname:"
  set cursor 414,252
  print fname$

  line 409,249,611,249
  line 409,271,611,271
  line 409,249,409,271
  line 611,249,611,271

  dim keyz(211)

  if mouseclick()=1 and mousex()>=409 and mousex()<=611 and mousey()>=249 and mousey()<=271
     k=100
     pos# = len(fname$)
     do
        z=z+1
        cls rgb(0,0,0)
        set cursor 325,252
        print "Firstname:"

        line 409,249,611,249
        line 409,271,611,271
        line 409,249,409,271
        line 611,249,611,271

        for p=14 to 211
           keyz(p)=keyz(p)+1
        next p

        if z>=10
           z=0

           line 414+8*pos#,252,414+8*pos#,267

           if l=1
              l=0
           else
              l=1
              line 414+8*pos#,252,414+8*pos#,267
           endif
        endif

        if leftkey()=1 and pos#>0 and keyz(203)>=200 then pos#=pos#-1:keyz(203)=0

        if scancode()=14 and pos#>0 and keyz(14)>=200
           fname$ = left$(fname$,pos#-1)+right$(fname$,len(fname$)-pos#)
           keyz(14)=0
           pos#=pos#-1
        endif

        if scancode()=211 and keyz(211)>=200
           fname$ = left$(fname$,pos#)+right$(fname$,len(fname$)-pos#-1)
           keyz(211)=0
        endif

        if rightkey()=1 and pos#<=len(fname$) and keyz(205)>=200 then pos#=pos#+1:keyz(205)=0

        if spacekey()=1 and keyz(57)>=100 and len(fname$)<24
           fname$ = left$(fname$,pos#)+" "+right$(fname$,len(fname$)-pos#)
           keyz(57)=0
           pos#=pos#+1
        endif

        if keystate(scancode())=1 and keyz(scancode())>=200 and len(fname$)<24
           fname$ = left$(fname$,pos#)+code_to_symbol(Scancode())+right$(fname$,len(fname$)-pos#)
           keyz(scancode())=0
           if code_to_symbol(Scancode())<>"" then pos#=pos#+1
        endif

        if scancode()=28 or scancode()=156
           EXIT
        endif

        set cursor 414,252
        print fname$
     loop
     cls rgb(0,0,0)
  endif
loop

function code_to_symbol(sc)
SELECT sc

case 16
symb$="q"
endcase

case 17
symb$="w"
endcase

case 18
symb$="e"
endcase

case 19
symb$="r"
endcase

case 20
symb$="t"
endcase

case 21
symb$="y"
endcase

case 22
symb$="u"
endcase

case 23
symb$="i"
endcase

case 24
symb$="o"
endcase

case 25
symb$="p"
endcase

case 30
symb$="a"
endcase

case 31
symb$="s"
endcase

case 32
symb$="d"
endcase

case 33
symb$="f"
endcase

case 34
symb$="g"
endcase

case 35
symb$="h"
endcase

case 36
symb$="j"
endcase

case 37
symb$="k"
endcase

case 38
symb$="l"
endcase

case 44
symb$="z"
endcase

case 45
symb$="x"
endcase

case 46
symb$="c"
endcase

case 47
symb$="v"
endcase

case 48
symb$="b"
endcase

case 49
symb$="n"
endcase

case 50
symb$="m"
endcase
endselect


endfunction symb$