runewalsh писал(а):Попробуй Math.SetExceptionMask([]).
Нет, там (в коде) всё в норме, я проверял, ноля - никогда не бывает, но SetExceptionMask всё равно потом сделаю, классная функция, спасибо.  
Сегодня, установил версию 1.64 + 3.02 и сбой в этом месте на 32 - вроде перестал появляться, но на 64 - планшет сразу отрубает программу, стоит коснуться пером. 
Стал рыть в этой части и нарыл, вот что:
В 
WinHID.pas - объявление вот такое:
- Код: Выделить всё
-    pRawInput = ^RawInput;
 RawInput = record
 header: RawInputHeader;
 case byte of
 0: (mouse: RawMouse);
 1: (keyboard: RawKeyboard);
 2: (hid: RawHid);
 end;
 
А в 
struct.inc, уже вот такое: 
- Код: Выделить всё
-       tagRAWINPUT = record
 header: RAWINPUTHEADER;
 data: record
 case longint of
 0: (mouse: RAWMOUSE);
 1: (keyboard: RAWKEYBOARD);
 2: (hid: RAWHID);
 end;
 end;
 PRAWINPUT = ^tagRAWINPUT;
 
Судя по всему именно конфликты в версиях модулей, т.к. здесь и там 
разные объявления, и где-то там в системе, могут быть разные обращения к raw: pRawInput; 
Видимо 
WinHID.pas - устарел для этой версии Лазаруса и FPC, т.к. в предыдущей версии ЭТИ проблемы - явно отсутствовали. 
Добавлено спустя 24 минуты 2 секунды:В WinHID.pas - объявление вот такое:
- Код: Выделить всё
-    function GetRawInputData(hRawInput: Windows.HANDLE; uiCommand: Windows.UINT; pData: pointer; var pcbSize: Windows.UINT; cbSizeHeader: Windows.UINT): Windows.UINT; stdcall; external user32;
 
А в func.inc, немнооожечко другое:
- Код: Выделить всё
- function GetRawInputData(hRawInput: HRAWINPUT; uiCommand: UINT; pData: LPVOID; pcbSize: PUINT; cbSizeHeader: UINT): UINT; external 'user32' name 'GetRawInputData'; 
 
UINT меняется на 
PUINT, но при этом обращение идёт  одной и той же библиотеке и функции. 
Пришлось заменить объявление: 
preparsedSize, rawSize: Windows.
UINT; 
на
preparsedSize, rawSize: Windows.
PUINT; 
Иначе не хотел компилировать. Заменил заработало.
В общем, в итоге, похоже программа ГДЕ-ТО получает вместо адреса в памяти, значение нажатия пера (или около того), т.к. в модулях чехарда с объявлениями. Ну и естественно всё рушится. (я так предполагаю).
Добавлено спустя 16 минут 42 секунды:Принудительно сделал все ссылки на модуль WinHID.pas - всё заработало на обеих версиях 32 и 64. И изначальный сбой вроде пока ещё не вылетал, но он бывает 1 раз в 15-30 минут. Так что поймать его очень сложно. Возможно теперь, всё починилось, т.к. вроде как при тестировании 32 разряда я сбой не смог получить.