ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 Disabling mouse inteactions on smoothzoom progress

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

View 
UserName:
Password:
Format  Bold Italicized Underline  Align Left Centered Align Right  Horizontal Rule  Insert Hyperlink   Browse for an image to attach to your post Browse for a zip to attach to your post Insert Code  Insert Quote Insert List
   
Message 

 

Emoji
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Black Eye [B)]
Frown [:(] Shocked [:0] Angry [:(!] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
kturkay Posted - May 19 2020 : 02:59:03
Hi!,

after some hours of digging and attemption many different possibilities,
I feel gotto ask that question.
I mean SetZoomSmooth progression.

I could not stop mouse clicks or whell events
while smoothzoom is in progress.

I think Imageenvect vcl overrides one of onmessage events or so..
Imageenvect1.enabled:=false; also not helped,control still stops the smoothzoom progress on any click actions.

trying to stop any mouse actions while smoothzoom is not triggered the onfinishsmoothzoom event.
disabling whole form or imageenvcl not helped also intrecepting onmessage not helped.

imageenvect1.MouseInteractVt := [];
imageenvect1.MouseInteractGeneral := [];
imageenvect1.LayerOptions := [];
imageenvect1.MouseInteractLayers := [];
imageenvect1.Enabled := false;
not helped

the last I try, totally disabling mouse on system wide.
procedure BlockInput(ABlockInput: Boolean); stdcall; external 'USER32.DLL';
BlockInput(true);//disable mouse
in OnFinishSmoothZoom event
BlockInput(false);//reenable mouse
that worked but seems tricky and seems mouse freeze temporary.

not an urgent help needed. just I wanna know:
is there a better way to stop mouse actions while smoothzoom in progress ?

I tried that one but imageen control still receives clicks and stops smooth zoom:
https://stackoverflow.com/questions/24332827/delphi-disable-mouse-buttons-and-enable-again

a demo to reproduce the question. image,description and codes are ready to test:

https://tr.im/SmoothZoomProblem
(thanks in advance)
3   L A T E S T    R E P L I E S    (Newest First)
kturkay Posted - May 20 2020 : 01:21:37
ah! found that bug. was my fault.
I accidently uncommented a line which interrupts the smoothzoom progression.

Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//should be commented/removed
SendMessage(Iv.Handle, WM_LBUTTONDOWN, 0, MAKELPARAM(X, Y));

ups
xequte Posted - May 20 2020 : 00:02:04
Hi

It is by design that ImageEn halts smooth zooming when you interact so you can commence working on it.

Nigel
Xequte Software
www.imageen.com
kturkay Posted - May 19 2020 : 11:01:07
okay I found a solution. reporting here:
it seems SetZoomSmooth is always interruptable.
instead of using setsmoothzoom
I put a timer.
changing zoom value manually
disabling imageen control when timer triggers. MouseWheelParams.Action to none;
and when zoom value reach the spesific value (finished) stopping timer and enabling control again. by this way it seems zoom progress is not interruptable.

-we love Imageen-