powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Floating point error в TWinControl.DefaultHandler
6 сообщений из 6, страница 1 из 1
Floating point error в TWinControl.DefaultHandler
    #39475986
LeoAm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, всем!

Столкнулся с проблемой, решение которой не могу найти.

Суть проблемы - есть VCL приложение на Delphi (версия Delphi не имеет значения, пробовал на разных). В качестве устройства ввода - используется панель ZinFrame (сенсорная панель, мультитач)
При проведении пальцем по форме программы - она вылетает с ошибкой Floating point error.

Приложение - пустое, одна форма, никаких компонентов и обработчиков событий! Создается так: File -> New -> VCL Forms Application -> Delphi, а потом просто Project - Run.

Проведя отладку выявил, что ошибка возникает в модуле Controls, конкретно в процедуре

Код: pascal
1.
procedure TWinControl.DefaultHandler(var Message);




Место где происходит ошибка

Код: pascal
1.
Result := CallWindowProc(FDefWndProc, WindowHandle, Msg, WParam, LParam);




Анализируя события и параметры на которых происходит ошибка, выявил, что это сообщения 0x245, 0x247. Согласно MSDN это сообщения раздела "Pointer Input Message Reference". Причем не на все сообщения происходит такая реакция, некоторые проходят.

Ошибка возникает во всех наследниках TWinControl.

Как я писал ранее, проверял такие приложения в разных версиях Delphi от 7 до 10.1. В тоже время приложение написанное на C# - работает без ошибок.

Есть какие-то мысли по этой проблеме, может кто-то сталкивался
...
Рейтинг: 0 / 0
Floating point error в TWinControl.DefaultHandler
    #39476031
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeoAmДобрый день, всем!

Столкнулся с проблемой, решение которой не могу найти.

Суть проблемы - есть VCL приложение на Delphi (версия Delphi не имеет значения, пробовал на разных). В качестве устройства ввода - используется панель ZinFrame (сенсорная панель, мультитач)
При проведении пальцем по форме программы - она вылетает с ошибкой Floating point error.

Приложение - пустое, одна форма, никаких компонентов и обработчиков событий! Создается так: File -> New -> VCL Forms Application -> Delphi, а потом просто Project - Run.

Проведя отладку выявил, что ошибка возникает в модуле Controls, конкретно в процедуре

Код: pascal
1.
procedure TWinControl.DefaultHandler(var Message);




Место где происходит ошибка

Код: pascal
1.
Result := CallWindowProc(FDefWndProc, WindowHandle, Msg, WParam, LParam);




Анализируя события и параметры на которых происходит ошибка, выявил, что это сообщения 0x245, 0x247. Согласно MSDN это сообщения раздела "Pointer Input Message Reference". Причем не на все сообщения происходит такая реакция, некоторые проходят.

Ошибка возникает во всех наследниках TWinControl.

Как я писал ранее, проверял такие приложения в разных версиях Delphi от 7 до 10.1. В тоже время приложение написанное на C# - работает без ошибок.

Есть какие-то мысли по этой проблеме, может кто-то сталкивался

В MSDN же написано:

Important: Desktop apps should be DPI aware. If your app is not DPI aware, screen coordinates contained in pointer messages and related structures might appear inaccurate due to DPI virtualization. DPI virtualization provides automatic scaling support to applications that are not DPI aware and is active by default (users can turn it off). For more information, see Writing High-DPI Win32 Applications.

Возможно проблема именно в этом.
...
Рейтинг: 0 / 0
Floating point error в TWinControl.DefaultHandler
    #39476090
LeoAm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
schi,

Я обратил на это внимание. Специально после этого отключил масштабирование в Windows т.е. 100%, 96 dpi. Раньше было действительно 150%. Но в итоге эффекта это не принесло.

Или этого не достаточно?

Буду признателен за помощь
...
Рейтинг: 0 / 0
Floating point error в TWinControl.DefaultHandler
    #39476229
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Floating point error в TWinControl.DefaultHandler
    #39476682
LeoAm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
schi,

Ознакомился с манифестом.
Попробовал использовать опции dpiAware true/pm
Ожидаемо - не дало результата.

Вопрос у меня не из за того, что приложение неправильно масштабируется, оно просто вылетает с ошибкой! причем ошибкой при вызове WINAPI функции, в качестве параметров которых идет Windows сообщение с параметрами и указатель на другую WINAPI функцию. Обе функции из user32.dll

Вчера протестировал данную конфигурацию программы на Windows 7 - там почему-то не было ошибки?! Это уже фантастика.
...
Рейтинг: 0 / 0
Floating point error в TWinControl.DefaultHandler
    #39476949
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверь соответствие дельфовые объявления апишным функциям по msdn
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Floating point error в TWinControl.DefaultHandler
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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