forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   BlitzMax (http://forum.boolean.name/forumdisplay.php?f=104)
-   -   Поделитесь нормальной функцией ввода строки в граф.режиме! (http://forum.boolean.name/showthread.php?t=20446)

edgemza 20.10.2016 15:16

Поделитесь нормальной функцией ввода строки в граф.режиме!
 
Вложений: 1
Собственно в заголовке понятна суть вопроса!
Я попробовал применить вот эту функцию, но разочарован... Вместо цифр.клавиши из раздела "Num", вводятся какие-то другие... буквы вводятся только латинские заглавные, строчных нет, не говоря уже вообще о русских... различные символы "+ - / * _ < > , ." и т.п. также не вводятся! :(

mingw 20.10.2016 17:55

Ответ: Поделитесь нормальной функцией ввода строки в граф.режиме!
 
Потому, что ты отлавливаешь сканкод клавиши. Этого делать не надо.

SuperStrict - очень полезная в быту вещь.

Что бы русские символы отображал, надо шрифт ставить с поддержкой кирилицы.

Код:

SuperStrict

Graphics 640,480,0

Local foo$ = Inputs() 'gl_input$(10,10,"what is your name? ")

SetColor 255,255,0 ; SetScale(2,2)

DrawText "hello "+foo$+", how are you?",100,100

Flip
WaitMouse

End

Function Inputs$()
       
        Local name$
       
        While WaitEvent()
               
                If CurrentEvent.id <> EVENT_KEYCHAR Then Continue
               
                name:+Chr(CurrentEvent.data)
               
                Cls()
               
                        DrawText(name, 10, 10)
                Flip()
               
        Wend
       
        Return name
       
End Function


edgemza 21.10.2016 01:02

Ответ: Поделитесь нормальной функцией ввода строки в граф.режиме!
 
Большое спасибо!
Сейчас же попробую...
P.S. В самой проге у меня включен (загружен) кирилический шрифт, а вот в тестируемый "кусок" я его (кирил.текст) вставить не догадался... :(

edgemza 21.10.2016 12:45

Ответ: Поделитесь нормальной функцией ввода строки в граф.режиме!
 
Ваша прога вводит текст лучше, но есть проблема:
если перед тем как вызывается функция были нажаты какие-то клавиши, то они появляются в поле ввода... :(
Как-будто бы они выходят из некоего клавиатурного буфера...

mingw 21.10.2016 12:51

Ответ: Поделитесь нормальной функцией ввода строки в граф.режиме!
 
Перед циклом вызови функцию FlushKeys()

edgemza 21.10.2016 15:17

Ответ: Поделитесь нормальной функцией ввода строки в граф.режиме!
 
Попробовал, но всё так-же, без изменений.
Может это имеет значение - перед вызовом функции для проверки и обработки клавиш у меня используется KeyDown и KeyHit ...


Часовой пояс GMT +4, время: 11:02.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot