|Subject:||Re: Performance Issue Mouse
|Date:||Thu, 26 Apr 2018 22:15:14 +1000
|From:||Leslie <"ViaThe List"@NOSPAM.com>
Another idea from my bag of tricks is to make the Window "Transparent"
to Windows while the SQL job is running.
This is achieved by trapping the WM_NCHITTEST message and returning
HT_TRANSPARENT while the job is running. Do this in the message loop of
the top level Window and it (and from memory its children) cannot be
seen by Windows and as such it will not receive any mouse messages.
This method is how fields get "protected" rather than disabled - there
is a visual difference between the two.
Just a thought
On 26/04/2018 10:07 PM, Leslie wrote:
> Strange as this was a common solution back in the day especially with a
> Sybase database.
> Are you sure you specified an appropriate Window Handle - remember a
> hidden Window cannot be used but also it should not be one of your
> current Windows either because they are likely the problem.
> So assuming all is ok with the hWnd then it implies that somewhere in
> the Paradox system (in all probability in your code) the Mouse Messages
> are in fact triggering an action which causes the delay.
> You have just about proven this fact by your statement that if the user
> moves the mouse back over the Window, after you programmatically moved
> it, while the SQL job still runs then it slows.
> To be more specific, my guess is that either a Window or a Field is
> trapping and acting upon either the WM_MOUSEMOVE or WM_NCMOUSEMOVE
> messages. Unless you are using TrackMouseEvent() to enable WM_HOVER and
> WM_LEAVE directly.
> So, to be certain I would use WinSpy++ to see what messages are being
> sent to which underlying Window while the flickering occurs.
> Lastly, what happens with the performance if you just hide the mouse
> cursor does performance improve or not.
> It is an interesting problem.
> On 26/04/2018 9:36 PM, Thies Grimm wrote:
>> Hi Leslie,
>> very nice idea, but doesn't work.
>> As Workaround I use something like this (moving the mouse off the
>> pntMouse = getMouseScreenPosition()
>> ... doing my SQL-Jobs ...
>> The disadvantage is that there is no mouse at all during the SQL-Jobs,
>> as long as the user doesn't move the mouse back it is fast - much faster.
>> On the Notebook 10 times faster!
>> I would love to get any idea how to solve that issue in a better way.
>> Leslie <"ViaThe List"@NOSPAM.com> wrote:
>>> Try SetCapture() and ReleaseCapture()
>>> On 25/04/2018 12:45 AM, Thies Grimm wrote:
>>>> How can I stop the mouse flickering during SQL-jobs.
>>>> When I move the mouse out of the paradox-window the action is almost
>>>> times faster!
>>>> SetMouseShape(NoMouse, True) doesn’t work either delayScreenUpdates.
>>> This email has been checked for viruses by AVG.