|
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 43
|
|
Присвоение дробного значения MaskEdit18.07.2011, 19:00. Показов 14355. Ответов 18
Метки нет (Все метки)
Имеется дробное значение в переменной, максимум знаков до запятой - 9, после запятой - 2. Но может быть и меньшее количество.
Если задать так: NewVal.EditMask := '### ### ###,##'; ... и присвоить этому Эдиту, скажем начальное значение переменной 52,14: old_val := FloatToStr(MyVal); NewVal.Text:= old_val; ...то получится следующая каша: 52, ___ ___, __ Как нормально присваивать значения, меньше заданной маски?
0
|
|
| 18.07.2011, 19:00 | |
|
Ответы с готовыми решениями:
18
Присвоение переменным значения из Edit |
|
60 / 60 / 8
Регистрация: 15.10.2010
Сообщений: 356
|
|
| 18.07.2011, 19:19 | |
|
Мне кажется, что Вам нужна следующая маска...
'!999999999\,99;1; '; Перед кавычкой закрывающей нужен пробел - символ, который будет отображаться на экране. В данном случае это именно пробел. Не тестил. Но думаю, что так. И наверное придется поставить ввод справа налево. Там есть где то такая опция --------- Хотя, наверно за счет восклицательного знака поглотится последняя нужда)) Советую и так и так попробовать))
1
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
||||||
| 18.07.2011, 19:48 | ||||||
|
Да, можно так, или так
0
|
||||||
|
60 / 60 / 8
Регистрация: 15.10.2010
Сообщений: 356
|
|
| 18.07.2011, 19:58 | |
|
Зачем нам С =)
Мне кажется выше крыши одной запятульки... Иначе придется делать для этого символа доп проверку.
0
|
|
|
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 43
|
|
| 18.07.2011, 20:43 [ТС] | |
|
Это немного получше ), но всё равно очень криво.
Во первых - восклицательный знак не помогает, в Эдите масса пробелов стоит слева. Во вторых - нужно поменять порядок. Даже не просто поменять, а чтоб число сдвигалось на один порядок с каждым новым
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|||
| 18.07.2011, 20:47 | |||
|
Добавлено через 1 минуту
0
|
|||
|
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 43
|
|
| 18.07.2011, 21:22 [ТС] | |
|
а каким боком тогда это можно организовать в обычном Эдите?
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 18.07.2011, 21:24 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 43
|
||
| 18.07.2011, 21:32 [ТС] | ||
|
0
|
||
|
60 / 60 / 8
Регистрация: 15.10.2010
Сообщений: 356
|
|
| 18.07.2011, 21:53 | |
|
Ну это просто можно делать с помощью обработки событий нажатия клавиш клавиатуры: отлавливать использование запятой, блокировать лишние цифры и буквы, и тд и тп...
Совсем не сложно. Строчек может на 15 будет)) Возможно, что больше. Ну и меньше.
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|||
| 18.07.2011, 22:45 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 43
|
|
| 19.07.2011, 00:33 [ТС] | |
|
так в том то и дело, писал для обычного Эдита, но у меня полностью блочился ввод, если после запятой 2 знака, надо сделать, чтоб целую часть же можно было ещё вводить. А особенно крутой эффект, если запятую вставлять посреди текста (ну бывает такое надо)...
Puporev, число НЕ может быть отрицательным. Про порядок - то про МаскЭдит, уже отпала в нём необходимость, понял, что проще через обычный Эдит.
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
||||||
| 19.07.2011, 08:32 | ||||||
|
Вот такая процедура вроде делает то, что Вам нужно.
1
|
||||||
|
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 43
|
|
| 19.07.2011, 14:47 [ТС] | |
|
Спасибо, но получилось тоже самое, что я писал выше - после двух чисел после запятой вообще ничего ввести нельзя, всмысле и в целой части тоже, то есть, чтобы редактировать целую часть, нужно стереть хоть одну цифру дробной (хоть Бэкспейс работает).
Только что поэксперементировал, если ставить разделитель посреди текста, то не только цифры, а даже Бэкспейс заблочился
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|||
| 19.07.2011, 14:50 | |||
|
0
|
|||
|
|
|
| 19.07.2011, 14:57 | |
|
Разбей вводную строку на 3 составные части, 1 часть - знаки до запятой, 2 - сама запятая, и 3 - знаки после запятой, преобразуй в одну строку потом это все, и конвертируй во Float, естественно нужно пропарсить 1 и 3 части, для того чтобы каждая часть была не зависима от другой - это для редактирования, то есть для до записи в строку
1
|
|
|
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 43
|
|
| 19.07.2011, 16:17 [ТС] | |
|
Puporev, ПОСЛЕ запятой больше двух чисел не вводить, а не ВООБЩЕ не вводить по всему Эдиту, так и у самого получалось, я же выше описывал это
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 19.07.2011, 16:49 | |
|
У меня вводится 9 цифр до запятой и 2 после, как и написано у тебя. А если ты еще путаешь цифры и числа, то пока учись, через годик приходи...
0
|
|
|
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 43
|
|
| 19.07.2011, 18:59 [ТС] | |
|
Я прекрасно понимаю разницу между цифрами и числами. Если после ввода необходимо редактировать целую часть, каким образом это может произойти при том, что Кей наглухо обнуляется?
Проблему решил сам, тему можно закрывать
0
|
|
| 19.07.2011, 18:59 | |
|
Помогаю со студенческими работами здесь
19
Присвоение одного значения нескольким переменным сразу Какой тип данных использовать для дробного значения
Switch: при вводе дробного числа программа выдает неправильные значения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|