Bottom Edge QuestionOne note on Bottom and TopEdgeEvents. In 7.1, an internal delay was introduced to ensure the edge had actually been reached before the event fired, so you may have a delay before that last line gets processed with whatever code is placed in the event itself. You can tell what I mean by arrowing up on the Desktop and notice the delay in the boundary strike noise when you reach a boundary. Thanks, Dennis Brown ----- Original Message ----- From: Paul Magill To: jawsscripts@xxxxxxxxxxxxx Sent: Thursday, January 17, 2008 7:42 AM Subject: [jawsscripts] Re: Bottom Edge Question Hi Mike, The functions you mentioned, are fired by Jaws itself, if a cursor actually strikes the bottom edge of a window, that is, the actual boundary of the window. If the invisibleCursor is actually hitting the bottom edge of your mainframe window, then the below may help. If however, it has just run onto blank space below the last item in the list, then see further down. Try including a copy of BottomEdgeEvent in your script set something like this: Void Function BottomEdgeEvent (handle WinHandle) IF IsInvisibleCursor () && (GetFocus () == WinHandle) THEN ; say or do what you want ELSE; not caused by your script BottomEdgeEvent (WinHandle) ; calls the one in the default file for normal behaviour ENDIF EndFunction 1. The IF statement may need more refinement, if it treats strikes on the bottom edge that are from situations other than those caused by your script, as if they were caused by your script. 2. no changes are required to your script. If caused by running out of items in the column, rather than hitting the bottom edge, then see additions to your script in your post below. ----- Original Message ----- From: Trent, Mike I have a very simple script to read the word directly under the PC cursor and then move to that word. This is for Rumba. I m using it to read columns of text on the mainframe. It works fine except when I get to the bottom of the page, then it just says blank. What I'd like to do is know how to recognize the bottom edge and do or say something other than 'blank'. The script is as I said very simple. ; see below the script for comments Script SayWordOnNextLine () SaveCursor () InvisibleCursor () RouteInvisibleToPc () NextLine () IF (GetCursorRow () < 999) THEN SayWord () ELSE ; further down the page ; say or do what you want ENDIF RoutePcToInvisible () EndScript ; replace the 999, with the cursor's row position of the first row below the last item in the list. this can be obtained by placing the cursor on the first blank line/item position, and pressing Alt+delete on the numpad. the second number is the row. A comment: On the mainframe I use, the PCCursor can be moved vertically just by using the arrow keys, so there is no need for using the invisible cursor. see the below script to read down a list of items. It presumes that the PCCursor is already active, and is not intended to notify of reaching the bottom. Script ColumnDown () ; Allows reading down a column of items NextLine () SayWord () EndScript Regards, Paul from Aust