| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Запятая или точка. Ввод данных в TextBox

Запятая или точка. Ввод данных в TextBox

Ответ
Поиск в этой теме
Непрочитано 11.05.2012, 12:30 #1
Запятая или точка. Ввод данных в TextBox
Yanic
 
Регистрация: 30.05.2011
Сообщений: 7

Приветствую и прошу подсказать!

Есть: програмка, где в TextBox вводятся пользователем данные, которые потом участвуют в расчётах, по ним рисуется скважина с глубинами и отметками, которые опять же вычисляются из введённых данных.

Проблема: десятичные данные надо вводить с запятой, а на рисунок выводить с точкой. Если вводить с точкой, то выдаёт ошибку. Поэтому надо переключать раскладку, делать с запятой, а потом на рисунке исправлять обратно.

Вопрос: получается надо писать код для замены при вводе (который у меня всё равно не работает ввиду того, что не знаю как делать), а потом код автозамены для рисунка?

Верю, что есть другой подход.
Вот кусок кода:

Код:
[Выделить все]
Dim arr() As Double
Private Sub Кнопка_Enter_Click() 'Кнопка добавить глубину    
    If Len(BoxGlubina.Value) > 0 Then

'''''''''''''''''Здесь я пытаюсь что-нибудь придумать с автозаменой точки при вводе:
      ''  If BoxGlubina.Value = "*.*" Then  
      ''  BoxGlubina.Value = "*,#"
      ''  End If
    
    arr(UBound(arr)) = BoxGlubina.Value
    ReDim Preserve arr(UBound(arr) + 1) ' Preserve - необязательный аргумент, данные уже имеющиеся в массиве, сохраняются после изменения его размерности
    End If            
      BoxGlubina.Text = Fasle
      BoxGlubina.SetFocus

''''''''''''''''''''''''' Здесь попытка заменить данные уже в массиве после ввода всех глубин    
'    For i = 0 To UBound(arr)
'    vr = arr(i)
'        If vr = "*.*" Then
'        vr = "*,#"
'        End If
'    Next i

End Sub
Просмотров: 5341
 
Непрочитано 11.05.2012, 12:39
#2
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Быстрое гугленье дало функцию Replace в VBA
bargool вне форума  
 
Непрочитано 18.05.2012, 11:33
#3
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Раньше делал как то так:
Dim m As Double: m = CDbl(Val(Replace(Trim(TextBox1.text), ",", ".")))
Boxa вне форума  
 
Автор темы   Непрочитано 18.05.2012, 12:33
#4
Yanic


 
Регистрация: 30.05.2011
Сообщений: 7


Спасибо за ответы!
Пока пришлось применить замену до вычислений, замену при рисовании обратно.
Оптимизацией код конечно не блещет, но пока работает, а потом похоже придётся переделать вообще по другому =)
Yanic вне форума  
 
Непрочитано 22.05.2012, 10:57
#5
bahil


 
Сообщений: n/a


Прелесть бейсика в том, что он сам преобразует типы.
Например:
dim m as double
1) m=textbox1.text разделитель - системный из винды
или
2) m= val(textbox1.text) - разделитель всегда точка
 
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Запятая или точка. Ввод данных в TextBox

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с расчетом Ж/Б каркаса в ANSYS derik ANSYS 457 04.07.2017 16:16
Как зациклить ввод данных solo123 Программирование 35 30.01.2011 15:18
Ввод данных по умолчанию swkx Программирование 20 23.09.2010 14:58
VBA. Многократный ввод данных и изменение положения объектов Markiza-2010 Программирование 6 28.06.2010 02:30
Ввод данных в АВТОЛИСПе vovkam LISP 3 19.06.2009 19:41