Skocz do zawartości

Blokada klawisza przy pisaniu


FanXX

Rekomendowane odpowiedzi

Siemanko chciałbym was zapytać czy jest jakiś sposób aby keyboard_string nie przechwytywał spacji \ lub ich nie wpisywał?

Wiem że trzeba coś ze znajdywaniem stringu w jakieś zmiennej i jego usunięcie ale nic mi nie przychodzi.

Próbowałem też

 

Step

GML
if !keyboard_check_direct(vk_space) {exit} else {tekst=keyboard_string}

 

Próbowałem szukać na GameMaker zagranicznym forum ale nie znalazłem co chciałem. Dzięks

@Edit PS: Mi to jest potrzebne po to by ludziska nie tworzyli swojego hasła albo loginu, gdzie hasło \ login to pare razy spacja xD

Odnośnik do komentarza
Udostępnij na innych stronach

Może co stepa sprawdzaj czy na końcu nie dodała się spacja

Własnie też tak już myślałem tylko nie mam pojęcia jak by zrobić coś na zasadzie file_find że sprawdza ciągle czy nie kliknąłem spacji. Z usuwaniem problemu bym nie mał.

 

@edit chociaż gdybym wiedział jaką funkcję z string_ wybrać było by łatwiej

Odnośnik do komentarza
Udostępnij na innych stronach

Ogólnie nie polecam tej metody, lepiej sprawdzić już po wpisaniu hasła, czy całość nie zawiera nielegalnych znaków i poprosić użytkownika o zmianę. Ale jeżeli chcesz blokować spację "na żywo" to mniej więcej coś takiego:

Step Event: NIE używać - patrz post Utermiko :P

GML
if string_char_at(keyboard_string,string_length(keyboard_string)) = chr(32)

{

keyboard_string = string_delete(keyboard_string,string_length(keyboard_string),1);

}

Powyższy kod sprawdza ostatni znak wpisany w keyboard_string i jeżeli jest to spacja to go kasuje, niestety jest pewien problem.

 

Problem polega na tym, że jeżeli użytkownik wciśnie spacje jednocześnie z innymi klawiszami na klawiaturze to najprawdopodobniej i tak ta spacja przejdzie przez to zabezpieczenie, bo program nie zdąży jej sprawdzić.

 

Nie mam teraz czasu dociekać dlaczego tak się dzieje, może ktoś inny będzie w stanie to wyjaśnić.

 

Lepiej byłoby po wypełnieniu całego formularza zrobić walidacje wszędzie gdzie to wymagane i wtedy poinformować użytkownika gdzie są błędy.

Odnośnik do komentarza
Udostępnij na innych stronach

Wielkie dzięki wam, działa dobrze, tylko musiałem użyć 255 liter w font bo gdy klikało się ALT + A to robiła się niewidoczna litera Ą tworząc spacje. I mam do was jeszcze jedno pytanko i ostatnie, jak sprawdzić czy w stringu istnieje np @ # $ % i gdy użytkownik wpisze któryś z takich symboli to dostanie

GML
show_message('Niedozwolone')

 

popróbuje z

GML
if string = '@' {}

i zobacze co wyjdzie

Odnośnik do komentarza
Udostępnij na innych stronach

W mojej gierce można wpisywać własny seed generatora mapy. Dozwolone są tylko duże i małe litery oraz cyfry. Dodatkowo string musi mieć długość 1-6 znaków.

DQNqWG3.pnglink do tematu z grą

 

Wpadłem na bardzo proste rozwiązanie :D

GML
/* jeżeli w stringu nie ma różnych znaków od cyfr lub liter to znaczy że

suma liter i cyfr będzie taka sama jak długość całego stringa*/

 

if ( string_length( string_digits( str ) ) +

string_length( string_letters( str ) ) == string_length( str ) &&

string_length( str ) <= 6 && string_length( str ) > 0 )

Odnośnik do komentarza
Udostępnij na innych stronach

jezeli chodzi o wczytyvanie tylko a-z, A-Z, 0-9

 

to jest latviej uzyc string_lettersdigits

 

naprzyklad:

_txt="witam v domu 2 pany/3panie"

draw_text(10,10,string(_txt));

draw_text(10,30,string_lettersdigits(_txt));

 

to rezultat jest:

witam v domu 2 pany/3panie

witamvdomu2pany3panie

Odnośnik do komentarza
Udostępnij na innych stronach

jezeli chodzi o wczytyvanie tylko a-z, A-Z, 0-9

 

to jest latviej uzyc string_lettersdigits

 

naprzyklad:

_txt="witam v domu 2 pany/3panie"

draw_text(10,10,string(_txt));

draw_text(10,30,string_lettersdigits(_txt));

 

to rezultat jest:

witam v domu 2 pany/3panie

witamvdomu2pany3panie

Nie zauważyłem tej funkcji, w takim razie można moje uprościć:

 

GML
if ( string_length( string_lettersdigits( str ) ) == string_length( str ) &&

string_length( str ) <= 6 && string_length( str ) > 0 )

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...