Unable to set the VAS (Paul Groot VAS with changes) needle direction when the scale is vertical

129 views
Skip to first unread message

avraham niv

unread,
Jun 18, 2013, 11:31:42 AM6/18/13
to e-p...@googlegroups.com
Hi all,
First I would really like to thank Paul for the script for the VAS it's great!
In my experiment I need to use the VAS both horizontally and vertically, and i need the needle starting position to be at the left and right edges (and not like Paul's VAS in the center).
For the horizontal VAS I managed to do it by adding another argument to VAS_DragScale so it looks like this:

Function VAS_DragScale(c As Context, strAttributeName as string, Optional duration as Variant, Optional strSliderDirection as Variant) as Integer

and than inside the function i added the following:

'set mouse cursor at left right or center position
    If IsMissing(strSliderDirection) then
        Mouse.SetCursorPos 0.5*(VAS_SliderDummy.Left+VAS_SliderDummy.Right), VAS_SliderDummy.Bottom
    else
        if strSliderDirection = "left" then
            Mouse.SetCursorPos VAS_SliderDummy.Left, VAS_SliderDummy.Bottom
        else
            if strSliderDirection = "right" then
                Mouse.SetCursorPos VAS_SliderDummy.Right, VAS_SliderDummy.Bottom
            end if
        end if
    End If

and in the trials I use an inline to tell the needle where to start.
That went fine but when I try to implement it in the vertical VAS it always starts from the bottom of the slider dummy text object,
I guess it is got to do with the fact that to create the vertical vas I just changed the slide text object (VAS_SliderDummy) dimensions, in the script basically changes every X to Y and vice versa, and every Object.Right to Object.Bottom and every Object.Left to Object.Top .
So for example my changes to the script above looks like this:

'set mouse cursor at up down or center position
    If IsMissing(strSliderDirection1) then
        Mouse.SetCursorPos 0.5*(VAS_SliderDummy.Bottom+VAS_SliderDummy.Top), VAS_SliderDummy.Left
    else
        if strSliderDirection1 = "top" then
            Mouse.SetCursorPos VAS_SliderDummy.Top, VAS_SliderDummy.Left
        else
            if strSliderDirection1 = "bottom" then
                Mouse.SetCursorPos VAS_SliderDummy.Bottom, VAS_SliderDummy.Left
            end if
        end if
    End If

As I mentioned it doesn't work.
If anyone got a clue I will be greatfull!
I attached the whole experiment if someone needs it and I would like to thank Paul again for the original script.
Exp2 - TEST 18.6.rar

Paul Groot

unread,
Jun 18, 2013, 2:40:48 PM6/18/13
to e-p...@googlegroups.com
Hi,

Well, I'm not able to double check this right now, but SetCursosPos accepts X,Y coordinates (in that order) by definition. Using Slider.Bottom for X and Slider.Left for Y, etc. doesn't make sense...

Shouldn't it be something like this?:


            if strSliderDirection1 = "bottom" then
                Mouse.SetCursorPos VAS_SliderDummy.Left, VAS_SliderDummy.Bottom
            end if





--
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+u...@googlegroups.com.
To post to this group, send email to e-p...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/e-prime/1af07bf2-5f71-4f20-baa4-3c0acb57543d%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

avraham niv

unread,
Jun 18, 2013, 4:06:32 PM6/18/13
to e-p...@googlegroups.com
Paul it WORKED you are totally right.
Thanks for the wise advice and for the genius script!!!
Avraham
Reply all
Reply to author
Forward
0 new messages