Older Version Newer Version

Daniel49 Daniel49 Aug 12, 2008

**//<span style="FONT-SIZE: 36pt; FONT-FAMILY: 'Monotype Corsiva'"><span style="COLOR: #ffb500; msoSpacerun: yes">Changing the cursor's position

</span></span>//****//<span style="FONT-SIZE: 28pt; FONT-FAMILY: 'Monotype Corsiva'">By Daniel49 </span>//**
<span style="FONT-SIZE: 16pt"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman">You can add a little more help for the user by setting the cursor’s position at will in a Liberty Basic program. This function can be used in tutorials and guides. Now, you’re probably wondering how the heck you can do this!<span style="mso-spacerun: yes"> </span>Well, it is pretty simple.  </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman">First, open the window: </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'This example demonstrates how to use user32 to set the ‘cursor at a given position </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'It is a function that may come in useful in tutorial and ‘guided tours </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'Use at will </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'Open the window </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">button</span><span style="FONT-SIZE: 18pt"> #main.exit, <span style="COLOR: green">"Push Me!",</span> [push], <span style="COLOR: #3366ff">UL</span>, <span style="COLOR: red">10</span>, <span style="COLOR: red">10</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">open</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: green">"An Example"</span> <span style="COLOR: blue">for</span> <span style="COLOR: teal">window</span> <span style="COLOR: blue">as</span> #main  </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman">Ok, now that our window is opened, lets declare our two variables; X and Y (yes it’s that simple)  </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'set the cursor position variables </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: teal">x</span><span style="FONT-SIZE: 18pt"> = <span style="COLOR: red">500</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: teal">y</span><span style="FONT-SIZE: 18pt"> = <span style="COLOR: red">500</span> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: blue"><span style="font-family: Times New Roman">wait </span></span>
<span style="FONT-SIZE: 18pt; COLOR: blue"><span style="font-family: Times New Roman"> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt">Now, to make our program interesting, we will make a simple Do Loop with a timer to move the cursor slowly (and not instantly).</span> </span>
<span style="font-family: Times New Roman"> </span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman">[push] </span></span>
<span style="FONT-SIZE: 18pt; COLOR: gray"><span style="font-family: Times New Roman">'Set the timer </span></span>
<span style="FONT-SIZE: 18pt; COLOR: blue"><span style="font-family: Times New Roman">do </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">timer</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: red">1</span>, [moveCursor] </span></span>
<span style="FONT-SIZE: 18pt; COLOR: blue"><span style="font-family: Times New Roman">wait </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman">[moveCursor] </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman">We’ve arrived to the fun part. Now, we will make the simple API call (user32) that will change the position of our cursor. </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman"> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: teal; mso-ansi-language: FR-CA">x</span><span style="FONT-SIZE: 18pt; mso-ansi-language: FR-CA"> = <span style="COLOR: teal">x</span> - <span style="COLOR: red">1</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: teal; mso-ansi-language: FR-CA">y</span><span style="FONT-SIZE: 18pt; mso-ansi-language: FR-CA"> = <span style="COLOR: teal">y</span> - <span style="COLOR: red">1</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">calldll</span><span style="FONT-SIZE: 18pt"> #user32, <span style="COLOR: green">"SetCursorPos</span>", _ </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: #339966">x</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: blue">as</span> <span style="COLOR: #339966">short</span>, _ <span style="COLOR: #999999">'define x position</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: #339966">y</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: blue">as</span> <span style="COLOR: #339966">long</span>, _ <span style="COLOR: #999999">'define y position</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: #339966">result </span><span style="FONT-SIZE: 18pt; COLOR: blue">as</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: #339966">Boolean </span></span></span>
<span style="FONT-SIZE: 18pt; COLOR: #339966"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman">Finally, lets end the program and the loop. </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman"> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">loop while</span><span style="FONT-SIZE: 18pt; COLOR: black"> (</span><span style="FONT-SIZE: 18pt; COLOR: #339966">x</span><span style="FONT-SIZE: 18pt; COLOR: black"> > </span><span style="FONT-SIZE: 18pt; COLOR: red">250</span><span style="FONT-SIZE: 18pt; COLOR: black">) </span><span style="FONT-SIZE: 18pt; COLOR: blue">and</span><span style="FONT-SIZE: 18pt; COLOR: black"> (</span><span style="FONT-SIZE: 18pt; COLOR: #339966">y</span><span style="FONT-SIZE: 18pt; COLOR: black"> > </span><span style="FONT-SIZE: 18pt; COLOR: red">250</span><span style="FONT-SIZE: 18pt; COLOR: black">) </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">timer</span><span style="FONT-SIZE: 18pt; COLOR: black"> </span><span style="FONT-SIZE: 18pt; COLOR: red">0</span><span style="FONT-SIZE: 18pt; COLOR: black"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman">'CLOSE the Program </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">close</span><span style="FONT-SIZE: 18pt; COLOR: black"> #main </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">end</span><span style="FONT-SIZE: 18pt; COLOR: black"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman">Here’s our demo: </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'This example demonstrates how to use user32 to set the ‘cursor at a given position </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'It is a function that may come in useful in tutorial and ‘guided tours </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'Use at will </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'Open the window </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">button</span><span style="FONT-SIZE: 18pt"> #main.exit, <span style="COLOR: green">"Push Me!",</span> [push], <span style="COLOR: #3366ff">UL</span>, <span style="COLOR: red">10</span>, <span style="COLOR: red">10</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">open</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: green">"An Example"</span> <span style="COLOR: blue">for</span> <span style="COLOR: teal">window</span> <span style="COLOR: blue">as</span> #main  </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: #999999"><span style="font-family: Times New Roman">'set the cursor position variables </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: teal">x</span><span style="FONT-SIZE: 18pt"> = <span style="COLOR: red">500</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: teal">y</span><span style="FONT-SIZE: 18pt"> = <span style="COLOR: red">500</span> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: blue"><span style="font-family: Times New Roman">wait </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman">[push] </span></span>
<span style="FONT-SIZE: 18pt; COLOR: gray"><span style="font-family: Times New Roman">'Set the timer </span></span>
<span style="FONT-SIZE: 18pt; COLOR: blue"><span style="font-family: Times New Roman">do </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">timer</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: red">1</span>, [moveCursor] </span></span>
<span style="FONT-SIZE: 18pt; COLOR: blue"><span style="font-family: Times New Roman">wait </span></span>
<span style="FONT-SIZE: 18pt"><span style="font-family: Times New Roman">[moveCursor] </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: teal; mso-ansi-language: FR-CA">x</span><span style="FONT-SIZE: 18pt; mso-ansi-language: FR-CA"> = <span style="COLOR: teal">x</span> - <span style="COLOR: red">1</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: teal; mso-ansi-language: FR-CA">y</span><span style="FONT-SIZE: 18pt; mso-ansi-language: FR-CA"> = <span style="COLOR: teal">y</span> - <span style="COLOR: red">1</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue; mso-ansi-language: FR-CA">calldll</span><span style="FONT-SIZE: 18pt; mso-ansi-language: FR-CA"> #user32, <span style="COLOR: green">"SetCursorPos</span>", _ </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: #339966">x</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: blue">as</span> <span style="COLOR: #339966">short</span>, _ <span style="COLOR: #999999">'define x position</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: #339966">y</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: blue">as</span> <span style="COLOR: #339966">long</span>, _ <span style="COLOR: #999999">'define y position</span> </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: #339966">result </span><span style="FONT-SIZE: 18pt; COLOR: blue">as</span><span style="FONT-SIZE: 18pt"> <span style="COLOR: #339966">Boolean </span></span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">loop while</span><span style="FONT-SIZE: 18pt; COLOR: black"> (</span><span style="FONT-SIZE: 18pt; COLOR: #339966">x</span><span style="FONT-SIZE: 18pt; COLOR: black"> > </span><span style="FONT-SIZE: 18pt; COLOR: red">250</span><span style="FONT-SIZE: 18pt; COLOR: black">) </span><span style="FONT-SIZE: 18pt; COLOR: blue">and</span><span style="FONT-SIZE: 18pt; COLOR: black"> (</span><span style="FONT-SIZE: 18pt; COLOR: #339966">y</span><span style="FONT-SIZE: 18pt; COLOR: black"> > </span><span style="FONT-SIZE: 18pt; COLOR: red">250</span><span style="FONT-SIZE: 18pt; COLOR: black">) </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">timer</span><span style="FONT-SIZE: 18pt; COLOR: black"> </span><span style="FONT-SIZE: 18pt; COLOR: red">0</span><span style="FONT-SIZE: 18pt; COLOR: black"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman"> </span></span>
<span style="FONT-SIZE: 18pt; COLOR: black"><span style="font-family: Times New Roman">'CLOSE the Program </span></span>
<span style="font-family: Times New Roman"><span style="FONT-SIZE: 18pt; COLOR: blue">close</span><span style="FONT-SIZE: 18pt; COLOR: black"> #main </span></span>
<span style="FONT-SIZE: 18pt; COLOR: blue"><span style="font-family: Times New Roman">end</span></span><span style="FONT-SIZE: 18pt; COLOR: black"> </span>