Форум » Clipper » GET » Ответить

GET

fil: Всем привет ! Нужно было изменить DOS прогу без исходников. Декомпилировал, исправил, собрал - все работает. В этой проге создается GET объкт для ввода значений разного типа. Если вводить дробное число и нажать на точку (для перехода к дробной части), то к точке разделяющей целую и дробную части добавляется еще одна точка. Соответственно разрядность дробной части числа уменьшается на 1. При выходе из GET вторая точка пропадает. В чем тут проблема ?

Ответов - 4

petr: возможно формат picture у этого GET выглядит как "XXXXXX.XX" можно изменить на "99999.99" ( тогда только цифры) или на "XXXXXXXX" (после ввода можно определять корректность числовых величин - удалять не цифры)

fil: Естественно, я сразу проверил Picture - все нормально.( 999999.99), даже явно прописал. При нажатии символа "," - все нормально - курсор перемещается на первую позицию после точки. А вот при нажатии символа "." перемещается в первую позицию после разделителя и заменяет содержимое этой позиции на точку. Причем, если вручную установить курсор на первую позицию после разделителя и нажать ".", то точка в эту позицию вставится (и только в эту позицию)

petr: для стандартного GETSYS из 5.2e поведение не типичное для числовых величин .....getsys.prg.... IF ( oGet:type == "N" .AND. ( cKey == "." .OR. cKey == "," ) ) oGet:toDecPos() ELSE ...... Возможно - переписан \source\sys\GETSYS.prg ? Или ввод символьных величин в формат "99999.99" ?


fil: Надоело разбираться чего там накрутил rescue5 - просто перехватил нажатие точки и положил в буфер клавиатуры запятую. Все заработало.



полная версия страницы