forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   TextBox с поддержкой русских символов (http://forum.boolean.name/showthread.php?t=18564)

Snogg 24.09.2013 18:00

TextBox с поддержкой русских символов
 
Нужен пример textbox'а с поддержкой русских символов. Пробовал gui_w512 - пишет Trial Version, как я понял - нужна лицензия FastImage. Пробовал гуи XLNT2 - в inputbox не вписываются русские символы. Пробовал урок с blitzetc.ru, но и там не поддерживаются русские символы(там всё считывается с ASCII кодов). Что делать, есть какие-нибудь примеры "русского" текстбокса?

Nex 24.09.2013 19:17

Ответ: TextBox с поддержкой русских символов
 
Скорее всего во всех примерах что ты видел ограничивают условием символы.

Snogg 24.09.2013 19:25

Ответ: TextBox с поддержкой русских символов
 
Пример из BlitzETC
Здесь просто считывается ASCII код нажатой клавиши и преобразовывается в букву. На русской раскладке вообще ничего не пишется.

DStalk 24.09.2013 19:38

Ответ: TextBox с поддержкой русских символов
 
Код:

Function GetSymbol()

        symb=GetKey()
        If symb>32 And symb<123 Then Return Chr(symb)
        If symb>191 And symb<256 Then Return Chr(symb)
        Return ""

End Function


Snogg 24.09.2013 19:55

Ответ: TextBox с поддержкой русских символов
 
Выводит крякозябры, блиц приучен к русскому языку - комментарии в .бб на кириллиц сохраняются. Или это не признак приученности блица к русскому?

MiXaeL 24.09.2013 20:04

Ответ: TextBox с поддержкой русских символов
 
Не надо путать IDE и консоль. Установи любой шрифт с поддержкой кириллицы.
SetFont, если что.

Snogg 24.09.2013 20:09

Ответ: TextBox с поддержкой русских символов
 
Устанавливал естественно. Arial и Verdana пробовал - всё равно крякозябры.

Snogg 24.09.2013 20:17

Ответ: TextBox с поддержкой русских символов
 
Ой, всё. Мой косяк. Ариал и Вердана как раз таки не поддерживают русский язык. Использовал Arial Cyr и всё отлично пошло.

Snogg 29.09.2013 11:30

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

Function my_input$(s$,x#,y#,dx#,dy#)
cur_pos%=Len(s)
view_text$="Введите ответ"

Color 220,220,220
Rect x,y,dx,dy,1
Color 0,0,0
Rect x+2,y+2,dx-4,dy-4,0
view_text=Left(s,cur_pos)
view_text=view_text+"|"
view_text=view_text+Right(s,Len(s)-cur_pos)
Text x+dx/2,y+dy/2,view_text,1,1
If MouseOverlap(x#,y#,x#+dx#,y#+dy#)=True Then ;And MouseHit(1)
        on=1
        Else
        on=0
End If

If on=1 Then
k=GetKey()
Select True
Case (k>31)And(k<256)
temp$=s
s$=Left(temp$,cur_pos)+Chr(k)+Right(temp$,Len(temp$)-cur_pos)
cur_pos=cur_pos+1

Case k=8
If cur_pos<>0 Then
temp$=s$
s= Left(temp$,cur_pos-1)+Right(temp$,Len(temp$)-cur_pos)
cur_pos=cur_pos-1
EndIf

Case k=4
If cur_pos<>Len(s) Then
temp$=s
s= Left(temp$,cur_pos)+Right(temp$,Len(temp$)-cur_pos-1)
EndIf

Case k=31
cur_pos=cur_pos-1
If cur_pos<0 Then cur_pos=0

Case k=30
cur_pos=cur_pos+1
If cur_pos>Len(s) Then cur_pos=Len(s)

Case k=1
cur_pos=0

Case k=2
cur_pos=Len(s)

End Select

End If
Return s$
End Function

Код:

Function MouseOverlap(X,Y,X1,Y1)
  If (MouseX()>X) And (MouseX()<X1) And  (MouseY()>Y) And (MouseY()<Y1) Then Return True Else  Return False
End Function



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

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