[Lazarus] TTimer(s) & strange resize/move form interaction in Win10 with Win32 application ?
Lukasz Sokol
el.es.cr at gmail.com
Thu Apr 27 13:45:52 CEST 2017
I have a Win32 application that I compile either on
Lazarus 1.4.4 r49931 FPC 2.6.4 i386-win32-win32/win64
(under WinXP SP3)
Lazarus 1.6.2 r53354 FPC 3.0.0 x86_64-win64-win32/win64 (under Win10) (actually also downloaded fpc-3.0.2.i386-win32.exe
from Hungarian mirror (as of 27/04/2017 ~12:00 GMT) for my application loads a 32bit library and refused to do it when built for 64bit target)
It runs, it loads, it works. On windows XP under debugger in Lazarus, no problem.
When I copy the executable made under WinXP to the Win10, 64bit computer, it also works;
(only if I want to recompile it under Win10 I have to do it with 32bit target compiler).
But, both copied AND the recompiled version, under Win10 has the following behavior:
- I can click any buttons I have on the form, change size of the entire form, move dividers etc,
but only until 2 TTimers are not active (they tick in about 10 and 20ms independent of each other
and update 2 different sets of TLabels on the form, just about)
But when I try to move the form, or resize it by the external edges, WITH the 2 TTimers running,
the form 'sort of' freezes:
sort-of, because the TLabels are still updated by my TTimers' OnTimer events running,
but clicking buttons has no effect, I can't resize the dividers any more, and the form would not even move
when dragged by the title bar.
This happens from the onset of just clicking on the title bar, or clicking the edge of form when
mouse pointer changes to 'two arrows'.
If I stop the running TTimers, I can move and resize and click anything;
Also when the form 'freezes' I can not click away from it - I have to use Alt+TAB to switch to another window,
and kill it externally (through Task Manager) otherwise it will not yield.
This (as I wrote above) does not happen on a 32bit computer under WinXP SP3.
Hope it helps,
Kind Regards
Lukasz
More information about the Lazarus
mailing list