Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.1] Znak zapytania (nieznany znak) po kasowaniu stringa

Ostatnio zmodyfikowano 2014-01-28 12:39
Autor Wiadomość
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
[SFML 2.1] Znak zapytania (nieznany znak) po kasowaniu stringa
» 2014-01-27 19:40:26
Siema!

Chciałem zrobić text boxa, ale:

C/C++
sf::Event eventS;
while( windowS.pollEvent( eventS ) )
{
    if( eventS.type == sf::Event::KeyPressed )
    {
        if( eventS.key.code == sf::Keyboard::BackSpace )
        {
            textt = " ";
        }
       
    }
   
    else if( eventS.type == sf::Event::TextEntered )
    {
        if( textt == "Podaj nazwe." )
        {
            textt = " ";
        }
        if( eventS.text.unicode < 128 && textt.size() <= 20 )
             textt = textt + static_cast < char >( eventS.text.unicode );
       
    }

po nacisnieciu backspace pojawia mi sie kwadrat z nawiasem w srodku, ktorego nie da sie usunac. Dlaczego tak się dzieje.

Z góry dziękuję.
P-103350
DzieckoBezZycia
Temat założony przez niniejszego użytkownika
» 2014-01-28 12:39:54
fixed.

Backspace jest lapany jako TextEntered i nie tylko on. Skorzystalem z tabeli znakow ASCII i przefiltrowalem TextEntered tak, aby byly tylko litery i inne właściwe znaki.

Poprawny kod:


            if (eventS.type == sf::Event::KeyPressed)
{
       if(eventS.key.code == sf::Keyboard::BackSpace && textt.size()>0 )
       {
            textt.erase( textt.size( ) - 1 );
       }

}

 else if (eventS.type == sf::Event::TextEntered)
{
    if(textt=="Podaj nazwe.")
    {
        textt=" ";
    }

    if (eventS.text.unicode > 31 && eventS.text.unicode < 126 && textt.size()<=20)
        textt = textt + static_cast<char>(eventS.text.unicode) ;
}

Temat do zamkniecia.

Pozdro. ;p
P-103397
« 1 »
  Strona 1 z 1