Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Put a max of caracter

edited February 2017 in Questions Posts: 12

How to put a max of caracter in a value?

Comments

  • dave1707dave1707 Mod
    Posts: 7,470

    You can't limit the amount of characters in the keyboard buffer because we have no control over it. You might be able to use the keyboard function to limit what's keyed. Since you don't go into detail of what you're doing, I can't give more help.

  • dave1707dave1707 Mod
    Posts: 7,470

    @goodboy2004 Here's an example that limits the characters pressed to 5 until the RETURN key is pressed.

    function setup()
        str1,str2="",""
        showKeyboard()    
    end
    
    function draw()
        background(0)
        fill(255)
        text(str1,WIDTH/2,HEIGHT/2)
        text(str2,WIDTH/2,HEIGHT/2-50)
    end
    
    function keyboard(k)
        if k==RETURN then
            str2=str1
            str1=""
        elseif #str1<5 then
            str1=str1..k
        end
    end
    
  • Thanks

  • In the fact, I juste want put a max of caracte in a value.

  • edited February 2017 Posts: 12

    I found a solution with KeyboardBuffer. But when I press backspace he have a time before he erase a caracter.
    This is the code:

    function setup()
        buffer=""
    end
    
    -- This function gets called once every frame
    function touched(touch)
        --Show keyboard when the screen is touched
        showKeyboard()
    end
    
    function draw()
        background(40,40,50)
        fill(255)
        textMode(CORNER)
        buffer2 = keyboardBuffer()
        _,bufferHeight = textSize(buffer) 
        if #buffer2<5 then
            buffer=buffer2
        end
        text( buffer, 10, HEIGHT - 30 - bufferHeight )
    end
    
  • dave1707dave1707 Mod
    edited February 2017 Posts: 7,470

    @goodboy2004 Add this line to the end of the draw function. That shows what's in the keyboardBuffer as you type. If you key in only 4 characters that go in buffer, then the backspace works correctly. If you key more that 4 characters, then it takes more backspaces in the keyboardBuffer to back out the characters.

        text( keyboardBuffer(), 10, HEIGHT - 100 - bufferHeight )
    
  • edited February 2017 Posts: 12

    I found a solution with the function keyboards.
    This is the code:


    function setup() strTab={} buffer="" showKeyboard() textMode(CORNER) end function draw() background(30,30,0,255) fill(255) if buffer~="" then text(buffer,10,600) end for z=1,#strTab do text(strTab[z],10,420+(#strTab-z)*20) end end function touched() showKeyboard() end function keyboard(key) if key == RETURN then table.insert(strTab,buffer) buffer="" elseif key==BACKSPACE then buffer=string.sub(buffer,1,string.len(buffer)-1) elseif #buffer<5 then buffer=buffer..key end end
  • dave1707dave1707 Mod
    Posts: 7,470

    @goodboy2004 If you would have done a forum search for keyboard, you would have found a lot of code that does what you show above.

  • Before to create this discussion, I had search.

  • dave1707dave1707 Mod
    Posts: 7,470

    @goodboy2004 I did a forum search for keyboard. I found a lot of keyboard stuff, but nothing specific to what you show. I remember posting several code examples similar to yours, but I couldn't find them. The forum search finds a lot of things, but not everything. I've noticed that in the past. There have been a lot of times I search for something I know I posted, but I never could find it.

Sign In or Register to comment.