Hi Mark: Yes, I updated my code yesterday, to include a _mousewheel function it didn't have before. Fell mentioned that to me. QB45 did not have that option.
I had to get used to QB64 _MOUSE workings. I had pretty well mastered using CALL INTERRUPT routines for mouse movement in QB, but i decided since I switched to QB64 to get used to the new mouse functions. At first, I noted some problems as you mentioned, needing delays, etc., but I worked them out with some methods like button releases. Some events happen as soon as you press the button, others wait until the button is released. You can effect how that happens by adding the button release code either before or after the event takes place. For example, in your code at line...
IF _MOUSEBUTTON(1) THEN 'click contols or select array item
you could wait until the left mouse button is released to act by adding...
WHILE _MOUSEBUTTON(1): somevariable = _MOUSEINPUT: WEND
right after your statement.
If you wanted the action to happen on the downward press, you would need to assign a variable to _MOUSEBUTTON(1) like lb% or something and use a mouse call to poll it. Something like this would do...
CALL mouse
(mi%
, mx%
, my%
, lb%
) LOCATE 1, 1:
PRINT "Left mouse button released... ": mflag%
= 0
SUB mouse
(mi%
, mx%
, my%
, lb%
)
As far as the .05 delay is concerned, I included an auto-scroll feature so when the button is held down, the scrolling speeds up. That speed had to have a timing factor, and I liked the effect at .05.
At Bill: I was able to fix my one complaint about dragging by getting rid of a WHILE:WEND statement I just didn't need it the original code. Thanks for having a look at it though. I know it's difficult when you don't get to see all the things tat need to be integrated. As Mark pointed out, the adjustment worked in one way but caused an unexpected problem, too.
Thanks for trying it out guys!
Pete