3.4.5. Ошибка EReadError при использовании вещественных свойств
3.4.5. Ошибка EReadError при использовании вещественных свойств
Если в секции published компонента имеются свойства вещественного типа (Single, Double или Extended), то попытка присвоить в режиме проектирования формы этим свойствам некоторые вполне корректные значения приводит к ошибке EReadError при чтении ресурсов формы (т. е. при создании формы). Для типов Double и Extended ошибка возникает, если значение свойства X лежит в одном из указанных диапазонов:
-1e15 < х <= MinInt — 1
или
MaxInt + 1 <= X < 1e15
Не совсем понятно, при чем здесь значения MaxInt и MinInt, если речь идет о вещественных числах, но проблема существует. Типу Single не хватает точности, чтобы передавать значения MaxInt и MinInt без искажений. Тем не менее, с поправкой на уменьшение точности границ диапазонов, эта же ошибка возникает и для свойств типа Single. Ошибка возникает только в случае текстовой формы dfm-файла (все версии Delphi, начиная с пятой, по умолчанию используют эту форму). При бинарной форме dfm-файла ошибки не происходит.
Ошибка обнаружена в Delphi 5 и 6, причем в Delphi 5 попытка ввести значение из указанного диапазона также может привести к ошибке и в режиме проектирования, при переключении между текстом модуля и формой. В Delphi 6 были замечены ошибки только при запуске программы, в режиме проектирования они не возникали. В Delphi 7 эта проблема уже решена, указанные значения свойств не приводят к ошибкам. В более ранних версиях Delphi проблема, естественно, также отсутствует, потому что в них dfm-файл всегда представляется в бинарной форме.
Для решения проблемы могут быть рекомендованы два способа.
1. Обновить Delphi до седьмой (или более поздней) версии.
2. Выбрать бинарную форму dfm-файла. Для этого нужно щёлкнуть правой кнопкой мыши на форме и в открывшемся меню убрать галочки с пункта Text DFM.
Можно также отказаться от присвоения проблемных значений свойствам в режиме проектирования и присваивать их во время выполнения программы.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Проблемы при использовании
Проблемы при использовании Даже если положиться на то, что спрайты поддерживаются (почти) всеми браузерами на данный момент, все равно остается достаточно много вопросов, которые они не только не решают, а скорее сами создают. Во-первых, это проблемы при использовании
Отчет об использовании дискового пространства
Отчет об использовании дискового пространства Напишем сценарий DrivesReport.js, который будет создавать таблицу использования дискового пространства для дисков всех типов (съемных, жестких и сетевых), имеющихся на компьютере, в следующем формате: Диск: буква_диска Метка
Вопросы защиты при использовании VPN
Вопросы защиты при использовании VPN Система VPN призвана повысить безопасность при обмене по сети. Однако она же может открыть злоумышленнику доступ к сетевым ресурсам. Взаимодействие компьютеров и сетей посредством VPN условно показано на рис. 26.1, 26.2 и 26.6. Однако из этих
Простота в использовании
Простота в использовании После правильной установки и настройки пользоваться системой VoIP-телефонии не сложнее, чем обычным телефоном. Принцип все тот же: вы снимаете трубку, ждете гудка, набираете номер, а когда собеседник отвечает, начинаете разговор. Конечно, если
2.1.9. Передача данных при использовании UDP
2.1.9. Передача данных при использовании UDP Мы наконец-то добрались до изучения того, ради чего сокеты и создавались: как передавать и получать с их помощью данные. По традиции начнем рассмотрение с более простого протокола UDP. Функции, которые рассматриваются в этом разделе,
2.1.11. Передача данных при использовании TCP
2.1.11. Передача данных при использовании TCP При программировании TCP и UDP применяются одни и те же функции, но их поведение при этом различно. Для передачи данных с помощью TCP необходимо сначала установить соединение, и после этого возможен обмен данными только с тем адресом, с
3.2. Неочевидные особенности вещественных чисел
3.2. Неочевидные особенности вещественных чисел Если рассмотренные в предыдущих разделах особенности целых чисел могли быть неочевидными только начинающим, то вещественные числа могут преподнести сюрпризы даже достаточно опытным программистам, т. к. их поведение
3.2.3. Внутренний формат вещественных чисел
3.2.3. Внутренний формат вещественных чисел Рассмотрим тип Single, т. к. он самый короткий и, следовательно, самый простой для понимания. Остальные типы отличаются от него только количественно. В дальнейшем числа в формате Single мы будем записывать как s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm, где s
Ошибка "объект находится в использовании"
Ошибка "объект находится в использовании" Исключение "object is in use" (объект находится в использовании) заслуживает внимания в контексте применения ограничений ссылочной целостности, поскольку является постоянным источником огорчений для новичков. Firebird не позволяет
Ошибка 0x00000037: ошибка FDD
Ошибка 0x00000037: ошибка FDD Ошибка дисковода для гибких дисков. Он у вас еще
Ошибка 0x0000003E: ошибка асимметричности
Ошибка 0x0000003E: ошибка асимметричности Ошибка асимметричности мультипроцессорной системы. У вас два процессора? Тогда проследите, чтобы они работали на одной частоте. Например, вы могли установить один процессор, который работает на частоте 1,6 ГГц, а второй – 1,8 ГГц. Вот вам
Ошибка 0x00000051: ошибка реестра
Ошибка 0x00000051: ошибка реестра Возможно, файлы реестра повреждены. Обычно данную проблему может помочь решить восстановление системы, после которого нужно произвести проверку жесткого диска на наличие «битых»
Ошибка 0x00000075: ошибка сохранения реестра
Ошибка 0x00000075: ошибка сохранения реестра Ошибка сохранения реестра, а именно – нет места для сохранения реестра. Пора покупать новый жесткий
Ошибка 0x0000009C:ошибка при проверке «железа»
Ошибка 0x0000009C:ошибка при проверке «железа» Критическая ошибка при проверке оборудования. Попробуйте переустановить
Ошибка 0x000000C4: ошибка в драйвере
Ошибка 0x000000C4: ошибка в драйвере При проверке драйверов была обнаружена фатальная ошибка в одном из драйверов. Поможет переустановка