Qbi Wan Opublikowano 10 Maja 2014 Udostępnij Opublikowano 10 Maja 2014 Witajcie :) Mam w evencie DRAW obj_all funkcję draw_text(x,y,first_button_text), natomiast w STEP coś takiego: GML if allow_write=true//jeżeli włączono pisanie { if first_button=true//i wolno pisać w sekcji 1. { first_button_text=string_copy(keyboard_string,1,string_length(keyboard_string))//to do str FBT skopiuj zawartość KS string_delete(keyboard_string,1,string_length(keyboard_string))//usuń zawartość KS if string_length(first_button_text)>2//jeżeli liczba znaków w FBT > 2 { var str_saved = string_copy(first_button_text, 1, 2 );//to zapisz FBT do SS string_delete(first_button_text,1,string_length(first_button_text))//wyczyść FBT first_button_text=string_copy(str_saved,1,2)//przepisz z powrotem z SS do FBT string_delete(str_saved,1,2)//usuń SS } if (keyboard_check_pressed(vk_backspace))//jeżeli naciśnięto Backspace { var str_saved = string_copy(first_button_text,1,string_length(first_button_text)-1);//to przenieś zawartość FBT bez ostatniego znaku do SS string_delete(first_button_text,1,string_length(first_button_text))//wyczyść FBT first_button_text=string_copy(str_saved,1,string_length(str_saved))////przepisz z powrotem z SS do FBT (już bez ostatniego znaku) string_delete(str_saved,1,string_length(str_saved))//usuń SS } } } I wszystko działa ok, poza jednym małym mankamentem: gdy wpiszę 3 znaki, to mimo że widzę prawidłowo tylko 2, backspace muszę nacisnąć 3 razy, jakby tamte znaki były gdzieś, tyle że niewidoczne. Jak mogę to naprawić? Wiem że można by to załatwić prościej, ale mam do pisania 2 pola między którymi można przeskakiwać, i każdorazowo trzeba zapisać zawartość, a backspace musi działać :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 10 Maja 2014 Udostępnij Opublikowano 10 Maja 2014 Zamiast string_delete() do czyszczenia zawartości stringa używaj keyboard_string="". Wydaje mi się że to wystarczy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 10 Maja 2014 Udostępnij Opublikowano 10 Maja 2014 chyba jescze treba czyscic keyboard_string. jesli zrozumialem twoj przyklad to tak jest ok: GML if allow_write=true{//jeżeli włączono pisanie if first_button=true {//i wolno pisać w sekcji 1. first_button_text=string_copy(keyboard_string,1,string_length(keyboard_string))//to do str FBT skopiuj zawartość KS string_delete(keyboard_string,1,string_length(keyboard_string))//usuń zawartość KS if string_length(first_button_text)>2{//jeżeli liczba znaków w FBT > 2 first_button_text=string_copy(first_button_text,1,2)//przepisz z powrotem z SS do FBT keyboard_string=first_button_text; //czysci keyboard_string od zbednych znakow } if (keyboard_check_pressed(vk_backspace)) {//jeżeli naciśnięto Backspace first_button_text=string_copy(first_button_text,1,string_length(first_button_text)-1); } } } napisze max 2 znaky i na vk_backspace zaraz vymazuje ostatni znak. teraz tylko dostosuj dla swych potrzeb dla przyslosci przeczytaj help :) string_delete zvraca copie stringu, zatem niemoglo dzialac pomyslne Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Qbi Wan Opublikowano 12 Maja 2014 Autor Udostępnij Opublikowano 12 Maja 2014 Śmiga ładnie, dzięki za pomoc :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę