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

1). Как сделать, чтоб в TextBox е набирались цифры как в калькуляторе Windows.

2). При конвертации числа в строку str(23.45) пропадает точка и все после нее, т.е. получается 23 . Возможно я не так конвертирую???
...
Рейтинг: 0 / 0
Два вопросика?!
    #33078647
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>При конвертации числа в строку str(23.45) пропадает точка и все после нее, т.е. получается 23. Возможно я не так конвертирую???
STR(23.45 , 5, 2 )

>Как сделать, чтоб в TextBoxе набирались цифры как в калькуляторе Windows
Честноговоря не понял что имено надо, но возможно ThisForm.Text1.Alignment=1
ThisForm.Text1.InputMask='9999999'
...
Рейтинг: 0 / 0
Два вопросика?!
    #33078654
Akel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, второй вопрос снимается=)
А вот по поводу первого, суть вот в чем: при запуске в TextBoxе уже как бы стоят пробелы и я могу куда угодно поставить курсор, а в калькуляторе винды там нет их и число как бы наростает.
...
Рейтинг: 0 / 0
Два вопросика?!
    #33078689
St_Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишешь событие KeyPress. В нем обрабатываешь текущее значение TextBox'а и только что введенный символ
...
Рейтинг: 0 / 0
Два вопросика?!
    #33078834
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akelпри запуске в TextBoxе уже как бы стоят пробелы и я могу куда угодно поставить курсор, а в калькуляторе винды там нет их и число как бы наростает.
Нет. В FoxPro простыми способами этого не сделать. Требуется относительно сложное программирование. В большинстве случаев, в этом нет смысла. Просто вопрос привычки.
...
Рейтинг: 0 / 0
Два вопросика?!
    #33078839
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akel
Как сделать, чтоб в TextBox е набирались цифры как в калькуляторе Windows.

Решение не тривиальное, но оно есть и основано на перехвате события KeyPress и его обработки. При этом надо учитывать знаки, десятичные дроби дроби, клавиши Del, BAckSpace, стрелки и пр..
С уважением, Алексей.
...
Рейтинг: 0 / 0
Два вопросика?!
    #33078955
Akel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМНет. В FoxPro простыми способами этого не сделать. Требуется относительно сложное программирование. В большинстве случаев, в этом нет смысла. Просто вопрос привычки.
Обидно... Мне то все равно, я привыкну, а вот что скажут пользователи?!
А я еще не настолько хорошо знаю FOX, чтоб такое написать...
...
Рейтинг: 0 / 0
Два вопросика?!
    #33079505
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение не тривиальное, но оно есть и основано на перехвате события KeyPress и его обработки
Я использую InterActiveChange на мой взляд так проще, а KeyPress может в некоторых случаях формой перехватываться
...
Рейтинг: 0 / 0
Два вопросика?!
    #33079531
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akel ВладимирМНет. В FoxPro простыми способами этого не сделать. Требуется относительно сложное программирование. В большинстве случаев, в этом нет смысла. Просто вопрос привычки.
Обидно... Мне то все равно, я привыкну, а вот что скажут пользователи?!
А я еще не настолько хорошо знаю FOX, чтоб такое написать...Пользователи привыкнут. И довольно быстро.
Временами и мне хочется, чтобы числовые поля вели себя так, как Вы описали, но это желание никогда не было для меня поводом затевать глобальное кодирование. Тем более, числа получаются в итоге такими, какими они должны быть, ну так и пусть себе вводятся слева направо.
...
Рейтинг: 0 / 0
Два вопросика?!
    #33079657
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, у меня таая же проблема возникала, но в другой ситуации.
Я просто считал поле ввода текстовым - value=space(50), а потом (после применения замены , на .) делал val().
Тогда набирай любое число с любым кол-вом символов до и после!
...
Рейтинг: 0 / 0
Два вопросика?!
    #33079716
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IdSyzРебята, у меня таая же проблема возникала, но в другой ситуации.
Я просто считал поле ввода текстовым - value=space(50), а потом (после применения замены , на .) делал val().
Тогда набирай любое число с любым кол-вом символов до и после!
Ты в курсе, что предельно допустимое количество символов (включая разделитель целой и дробной части) в любом поле числового типа FoxPro - это 20 символов.

FoxPro работает только и исключительно с 16 значащими цифрами - это значит, что доверять можно только 14 значащим цифрам. 15 и 16 - сомнительны, а остальные заполняются случайгым образом.

Следовательно, из всех введенных тобой 50 символов (space(50)) после конвертации через функцию VAL() останется только 16 значащий цифр, а доверять ты сможешь только первым 14 из них.

Далее, функция VAL() обладает некоторой интелектуальностью. Т.е. переводить символьную строку в число она будет до тех пор, пока не встретиться символ отличный от цифры или символа разделителя целой и дробной части.

Ты анализировал только запятую, но ведь возможен ввод и других символов:

?VAL("123 456.78")
?VAL("456.78.91")

Это значит, что тебе либо придется ввести маску ввода (InputMask = "9999.99"), либо писать относительно сложный анализ нажатых клавишь, либо перед конвертацией по VAL() анализировать введенное значение на предмет выбрасывания лишних символов.

Не надо "мудрить" с форматами ввода, если в этом нет действительной необходимости.
...
Рейтинг: 0 / 0
Два вопросика?!
    #33080097
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен со всем!
Просто у меня задача стояла простенькая - пользователь набирал на правой клавиатуре цену в определенном диапазоне. После этого и шла конвертация и проверка. Насчет 50 символов я загнул - использовал только 15!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Два вопросика?!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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