powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Коды символов: точка превращается в запятую!
5 сообщений из 5, страница 1 из 1
Коды символов: точка превращается в запятую!
    #34238098
fortknox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Проблема в следующем!

Есть обыкновенныи Input, в который надо запретить вводить запятую, при этом точку (ну и все остальные символы можно)!

Код: plaintext
1.
2.
Private Sub txtSStatus_KF_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(",") Then KeyAscii =  0 
End Sub

Такой вариант работает! НО ДЛЯ ГЛАВНОЙ КЛАВИАТУРЫ!!!
Т.е. точку ставит, запятую не ставит!

Если же включить Num Lock и нажать на клавишу с точкой, то в инпуте появится запятая!
При том код у этой запятой такой же как и код у точки в основной клавиатуре - 46!

Поэтому
Код: plaintext
If KeyAscii =  46  Then KeyAscii =  0 
не работает! Так как блокируются и запятая Num Lock'a и точка, которая нужна!

А подставить обозначение Asc("ВОТ СЮДА") точки с панели NumLock'a не могу...

Как мне быть???
...
Рейтинг: 0 / 0
Коды символов: точка превращается в запятую!
    #34238493
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте поменять региональную настройку с Russian на English(United States) и посмотреть, что получится.
...
Рейтинг: 0 / 0
Коды символов: точка превращается в запятую!
    #34238813
fortknox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При русской раскладке реакции на точку нумлока вообще нет...
Но пользователь то может вводить и с англ. раскладки...
...
Рейтинг: 0 / 0
Коды символов: точка превращается в запятую!
    #34243162
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
'API - Прочитать региональные настройки (Используется для получения разделителя целой и дробной частей)
Private Const LOCALE_SDECIMAL = &HE
Private Declare Function GetLocaleInfo Lib "kernel32" _
    Alias "GetLocaleInfoA" (ByVal Locale As Long, _
    ByVal LCType As Long, ByVal lpLCData As String, _
    ByVal cchData As Long) As Long
Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long

Public Function GetDecimalPoint() As String  'Запрашивает у Windows системную десятичную точку
    On Error GoTo ErrorHandler
    Dim sBuffer As String
    Dim lNullPos As Long
    
    sBuffer = String( 100 , " ")
    If GetLocaleInfo(GetUserDefaultLCID(), LOCALE_SDECIMAL, sBuffer,  99 ) Then
        lNullPos = InStr(sBuffer, vbNullChar)
        If lNullPos Then
            GetDecimalPoint = Left$(sBuffer, lNullPos -  1 )
            Exit Function
        End If
    End If
ErrorHandler:
    GetDecimalPoint = "."
End Function
...
Рейтинг: 0 / 0
Коды символов: точка превращается в запятую!
    #34245732
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Worobjoff]
Код: plaintext
1.
2.
3.
4.
'API - Прочитать региональные настройки (Используется для получения разделителя целой и дробной частей)[/quot]

Нафига так сложно-то??? Достаточно:

[SRC vba]Format( 0 ,".")
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Коды символов: точка превращается в запятую!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]