powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Точка при в воде TFLoatField
12 сообщений из 12, страница 1 из 1
Точка при в воде TFLoatField
    #39864966
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Столкнулся с примитивщиной, но не могу решить)))
Есть таблица SQLite
В ней есть поле Real. Ставил тип и Real и Double
Работаю через FireDAC.
Есть стандартный контрол TDbEdit
Проблема:
Контрол не позволяет ввести точку.
Но при этом позволяет ввести запятую.
Экспериментировал с полями TFloatField EditFormat и DisplayFormat.
Ставил
"###,##0.0#"
"0.0"
"##.##"
+другие варианты
+просто очищал эти поля

Ничего не помогает - точка не вводится, запятая вводится. Хоть ты тресни.
Когда ты пишешь запятую и сохраняешь - вылетает исключение "is not Floating point value"
Ну и в принципе - все таки принято отделять дробную часть точкой ....
Куда можно покопать?
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39864973
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbolв принципе - все таки принято отделять дробную часть точкой ....
Куда можно покопать?

Дробную часть принято отделять десятичным разделителем, который пользователь установил в
настройках системы. Если он захочет точку - будет точка. Захочет запятую - будет запятая.
Захочет тире - будет тире. Дело программиста ему это разрешить, а не прогибать под свои
"принципы".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39864983
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При создании ДатаМодуля у меня написано
Код: pascal
1.
FormatSettings.DecimalSeparator := '.';


Но это тоже никак не влияет на решение моей проблемы.
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39864987
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbolэто тоже никак не влияет на решение моей проблемы.

Вполне вероятно, что это её и создаёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39865000
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
нее
Убирал эту строку, менял на FormatSettings.DecimalSeparator := ',' - вообще никак не влияет.
...
Первый раз с таким поведением встречаюсь...
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39865012
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basketbol,

точка принята как десятичный разделитель лишь в странах СНГ, мож еще в Европе. А вообще тока или запятая прописана в языковых настройках винды, возможно оттуда берет десятичный разделитель дбедит, игнорирую программную правку через десималсепаратор. и кстати, неумение принять запятую как разделитель - это проблема базы, раз она не берет это значение из системы.
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39865025
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrigoriyFomin, база (sqlite) то принимает. Т.е. если зайти в таблицу SQLite менеджером - то можно хоть точку, хоть запятую.
...
Только что что то тыкал - на запятую перестал ругаться. Уже прогресс, но хочецца все таки точку увидеть вместо запятой))
...
UPD. Разобрался. Действительно - разделитель берется из региональных настроек. И видимо где то жестко прописана эта связь.
Получается путаница - ибо когда я в displayFormat и editFormat пишу ##.## - я ожидаю видеть именно точку как разделитель.
Исправил в региональных настройках разделитель на точку - все получилось.
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39865029
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это все называется "когда с delphi 7 переехал на delphi Tokyo" )))
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39865052
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFominи кстати, неумение принять запятую как разделитель - это проблема базы, раз она не берет это значение из системы.Ну подскажи мне базу, которая "умеет" такое:

Код: sql
1.
insert into t(a,b,c) values(1,25,1,44,5)



Базы тут вообще не при чем. С любой базой надо работать через параметры, а там проблемы нет и быть не может.
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39865064
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockС любой базой надо работать через параметры, а там проблемы нет и быть не может.

Может. Чайники умудряются биндить строку в значение любого парамера. Включая конструкцию
"in (?)". А потом удивляются как это оно не работает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39865109
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

ну в ассемблере разделитеть параметров и аргументов тоже запятая - причем тут исходники до клиентского ГУИ
...
Рейтинг: 0 / 0
Точка при в воде TFLoatField
    #39865127
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFominYuRock,

ну в ассемблере разделитеть параметров и аргументов тоже запятая - причем тут исходники до клиентского ГУИА при чем тут базы к ассемблеру?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Точка при в воде TFLoatField
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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