TGC Codebase Backup



edited input by Anonymous Coder

3rd Aug 2009 4:44
Summary

text_input("message$",100,100,14) function text_input(message$,x,y,max)



Description

text_input("Firstname:",100,100,14)
function text_input(message$,x,y,max)



Code
                                    ` This code was downloaded from The Game Creators
                                    ` It is reproduced here with full permission
                                    ` http://www.thegamecreators.com
                                    
                                    text_input("Firstname:",100,100,14)


function text_input(message$,x,y,max)
do
  cls
  set cursor x,y+4
  print message$
  set cursor x+105,y+5
  print fname$

  line x+100,y,x+225,y
  line x+100,y+25,x+225,y+25
  line x+100,y,x+100,y+25
  line x+225,y,x+225,y+25

 dim keyz(211)

  if mouseclick()=1 and mousex()>x+100 and mousex()<x+225 and mousey()>y and mousey()<y+25
     k=100
     pos# = len(fname$)
     do
        z=z+1
        cls rgb(0,0,0)
        set cursor x,y+4
        print message$

        line x+100,y,x+225,y
        line x+100,y+25,x+225,y+25
        line x+100,y,x+100,y+25
        line x+225,y,x+225,y+25

        for p=14 to 211
           keyz(p)=keyz(p)+1
        next p
              line x+105+8*pos#,y+5,x+105+8*pos#,y+20

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

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

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

        if rightkey()=1 and pos#<=len(fname$) and keyz(205)>=50 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())>=50 and len(fname$)<max
           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 x+105,y+5
        print fname$
     loop
     cls rgb(0,0,0)
  endif
loop
endfunction
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$